diff --git a/src/HpcCombine.hs b/src/HpcCombine.hs
index cebb21e9c92271d4f5d8949e9e9017a06649713d..7dc568ddcb84308e70b167fd60956d14f81827e2 100644
--- a/src/HpcCombine.hs
+++ b/src/HpcCombine.hs
@@ -29,9 +29,7 @@ sumPlugin =
       usage = "[OPTION] .. <TIX_FILE> [<TIX_FILE> [<TIX_FILE> ..]]",
       options = sumOptions,
       summary = "Sum multiple .tix files in a single .tix file",
-      implementation = sumMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = sumMain
     }
 
 combineOptions :: FlagOptSeq
@@ -51,9 +49,7 @@ combinePlugin =
       usage = "[OPTION] .. <TIX_FILE> <TIX_FILE>",
       options = combineOptions,
       summary = "Combine two .tix files in a single .tix file",
-      implementation = combineMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = combineMain
     }
 
 mapOptions :: FlagOptSeq
@@ -73,9 +69,7 @@ mapPlugin =
       usage = "[OPTION] .. <TIX_FILE> ",
       options = mapOptions,
       summary = "Map a function over a single .tix file",
-      implementation = mapMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = mapMain
     }
 
 ------------------------------------------------------------------------------
diff --git a/src/HpcDraft.hs b/src/HpcDraft.hs
index 7ee65530518c5f7af1a1e925db03305b32a3ba6a..ea4acc1f980f83d60ae8af5af813de960098c5d9 100644
--- a/src/HpcDraft.hs
+++ b/src/HpcDraft.hs
@@ -28,9 +28,7 @@ draftPlugin =
       usage = "[OPTION] .. <TIX_FILE>",
       options = draftOptions,
       summary = "Generate draft overlay that provides 100% coverage",
-      implementation = draftMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = draftMain
     }
 
 ------------------------------------------------------------------------------
diff --git a/src/HpcFlags.hs b/src/HpcFlags.hs
index e0a759943d283483a7b3189e83bc03e2c1e52d6b..c7952677423cb814ec17207e878b1b3c1c933c88 100644
--- a/src/HpcFlags.hs
+++ b/src/HpcFlags.hs
@@ -262,9 +262,7 @@ data Plugin = Plugin
     usage :: String,
     options :: FlagOptSeq,
     summary :: String,
-    implementation :: Flags -> [String] -> IO (),
-    init_flags :: Flags,
-    final_flags :: Flags -> Flags
+    implementation :: Flags -> [String] -> IO ()
   }
 
 ------------------------------------------------------------------------------
diff --git a/src/HpcMain.hs b/src/HpcMain.hs
index 9fb83ce7c9b4cf8aeacad36b93a5f32e27505e0b..74c98ceadc31027eadf25d61b362d4fa00be1c90 100644
--- a/src/HpcMain.hs
+++ b/src/HpcMain.hs
@@ -156,7 +156,7 @@ dispatchOnPlugin plugin args =
       commandUsage plugin
       exitFailure
     (o, ns, _) -> do
-      let flags = final_flags plugin (foldr ($) (init_flags plugin) o)
+      let flags = defaultFinalFlags (foldr ($) defaultFlags o)
       implementation plugin flags ns
 
 hooks :: [Plugin]
@@ -183,9 +183,7 @@ helpPlugin =
       usage = "[<HPC_COMMAND>]",
       summary = "Display help for hpc or a single command",
       options = id,
-      implementation = helpMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = helpMain
     }
 
 helpMain :: Flags -> [String] -> IO ()
@@ -208,9 +206,7 @@ versionPlugin =
       usage = "",
       summary = "Display version for hpc",
       options = id,
-      implementation = versionMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = versionMain
     }
 
 versionMain :: Flags -> [String] -> IO ()
diff --git a/src/HpcMarkup.hs b/src/HpcMarkup.hs
index 849a3e1c1a13a9e7354c4e0cfe7748d8449521a9..1c787db9be8c8adace23c8dd93ad4068879953c3 100644
--- a/src/HpcMarkup.hs
+++ b/src/HpcMarkup.hs
@@ -39,9 +39,7 @@ markupPlugin =
       usage = "[OPTION] .. <TIX_FILE> [<MODULE> [<MODULE> ..]]",
       options = markupOptions,
       summary = "Markup Haskell source with program coverage",
-      implementation = markupMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = markupMain
     }
 
 ------------------------------------------------------------------------------
diff --git a/src/HpcOverlay.hs b/src/HpcOverlay.hs
index db9046b827e730f6257e0a7e05c73f2644897f02..831edb8b246e0fcda3512b9a0894de7e4c2f6b77 100644
--- a/src/HpcOverlay.hs
+++ b/src/HpcOverlay.hs
@@ -26,9 +26,7 @@ overlayPlugin =
       usage = "[OPTION] .. <OVERLAY_FILE> [<OVERLAY_FILE> [...]]",
       options = overlayOptions,
       summary = "Generate a .tix file from an overlay file",
-      implementation = overlayMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = overlayMain
     }
 
 overlayMain :: Flags -> [String] -> IO ()
diff --git a/src/HpcReport.hs b/src/HpcReport.hs
index 14a36b4977c738e8015d8a5517491f384f3be30f..ca01da43b8870fb0050e301b764b0f7157a4b8e8 100644
--- a/src/HpcReport.hs
+++ b/src/HpcReport.hs
@@ -308,9 +308,7 @@ reportPlugin =
       usage = "[OPTION] .. <TIX_FILE> [<MODULE> [<MODULE> ..]]",
       options = reportFlags,
       summary = "Output textual report about program coverage",
-      implementation = reportMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = reportMain
     }
 
 reportMain :: Flags -> [String] -> IO ()
diff --git a/src/HpcShowTix.hs b/src/HpcShowTix.hs
index 9b91988484aa25f1645cdce9a99d61db4bf57db5..bb346219f65f589de20a356dc18d384c175c1637 100644
--- a/src/HpcShowTix.hs
+++ b/src/HpcShowTix.hs
@@ -24,9 +24,7 @@ showtixPlugin =
       usage = "[OPTION] .. <TIX_FILE> [<MODULE> [<MODULE> ..]]",
       options = showtixOptions,
       summary = "Show .tix file in readable, verbose format",
-      implementation = showtixMain,
-      init_flags = defaultFlags,
-      final_flags = defaultFinalFlags
+      implementation = showtixMain
     }
 
 showtixMain :: Flags -> [String] -> IO ()