diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -20,7 +20,6 @@
         , "Shakefile.hs"
         , "main//*.hs"
         , "src//*.hs"
-        , "test//*.hs"
         ]
 
   -- | Cabal rules.
@@ -34,7 +33,7 @@
   -- | sanity
   --
   fake' pats "sanity" $ const $
-    need [ "lint", fakeFile "build-error" ]
+    need [ fakeFile "build-error", "lint" ]
 
   -- | Default things to run.
   --
diff --git a/main/actor.hs b/main/actor.hs
--- a/main/actor.hs
+++ b/main/actor.hs
@@ -27,7 +27,7 @@
 main :: IO ()
 main = do
   args <- getRecord "Actor"
-  runResourceT $ actMain
+  actMain
     (config args)
     (queue args)
     (command args)
diff --git a/main/decider.hs b/main/decider.hs
--- a/main/decider.hs
+++ b/main/decider.hs
@@ -25,6 +25,6 @@
 main :: IO ()
 main = do
   args <- getRecord "Decider"
-  runResourceT $ decideMain
+  decideMain
     (config args)
     (plan args)
diff --git a/src/Network/AWS/Wolf/Act.hs b/src/Network/AWS/Wolf/Act.hs
--- a/src/Network/AWS/Wolf/Act.hs
+++ b/src/Network/AWS/Wolf/Act.hs
@@ -84,9 +84,10 @@
 
 -- | Run actor from main with config file.
 --
-actMain :: MonadMain m => FilePath -> Text -> String -> m ()
+actMain :: MonadControl m => FilePath -> Text -> String -> m ()
 actMain cf queue command =
-  runCtx $ do
-    conf <- readYaml cf
-    runConfCtx conf $
-      forever $ act queue command
+  runResourceT $
+    runCtx $ do
+      conf <- readYaml cf
+      runConfCtx conf $
+        forever $ act queue command
diff --git a/src/Network/AWS/Wolf/Decide.hs b/src/Network/AWS/Wolf/Decide.hs
--- a/src/Network/AWS/Wolf/Decide.hs
+++ b/src/Network/AWS/Wolf/Decide.hs
@@ -101,11 +101,12 @@
 
 -- | Run decider from main with config file.
 --
-decideMain :: MonadMain m => FilePath -> FilePath -> m ()
+decideMain :: MonadControl m => FilePath -> FilePath -> m ()
 decideMain cf pf =
-  runCtx $ do
-    conf <- readYaml cf
-    runConfCtx conf $ do
-      plans <- readYaml pf
-      runConcurrent $
-        (forever . decide) <$> plans
+  runResourceT $
+    runCtx $ do
+      conf <- readYaml cf
+      runConfCtx conf $ do
+        plans <- readYaml pf
+        runConcurrent $
+          (forever . decide) <$> plans
diff --git a/src/Network/AWS/Wolf/File.hs b/src/Network/AWS/Wolf/File.hs
--- a/src/Network/AWS/Wolf/File.hs
+++ b/src/Network/AWS/Wolf/File.hs
@@ -120,13 +120,13 @@
 
 -- | Setup a temporary work directory.
 --
-withWorkDirectory :: MonadBaseControlIO m => Text -> (FilePath -> m a) -> m a
+withWorkDirectory :: MonadControl m => Text -> (FilePath -> m a) -> m a
 withWorkDirectory uid =
   bracket (getWorkDirectory uid) (liftIO . removeDirectoryRecursive)
 
 -- | Change to directory and then return to current directory.
 --
-withCurrentDirectory :: MonadBaseControlIO m => FilePath -> (FilePath -> m a) -> m a
+withCurrentDirectory :: MonadControl m => FilePath -> (FilePath -> m a) -> m a
 withCurrentDirectory wd action =
   bracket (liftIO getCurrentDirectory) (liftIO . setCurrentDirectory) $ \cd -> do
     liftIO $ setCurrentDirectory wd
@@ -134,7 +134,7 @@
 
 -- | Setup a temporary work directory and copy current directory files to it.
 --
-withCurrentWorkDirectory :: MonadBaseControlIO m => Text -> (FilePath -> m a) -> m a
+withCurrentWorkDirectory :: MonadControl m => Text -> (FilePath -> m a) -> m a
 withCurrentWorkDirectory uid action =
   withWorkDirectory uid $ \wd ->
     withCurrentDirectory wd $ \cd -> do
diff --git a/src/Network/AWS/Wolf/Prelude.hs b/src/Network/AWS/Wolf/Prelude.hs
--- a/src/Network/AWS/Wolf/Prelude.hs
+++ b/src/Network/AWS/Wolf/Prelude.hs
@@ -6,17 +6,12 @@
 --
 module Network.AWS.Wolf.Prelude
   ( module Exports
-  , runResourceT
   , runConcurrent
   , stripPrefix'
-  , MonadBaseControlIO
-  , MonadMain
   ) where
 
 import Control.Concurrent.Async.Lifted
-import Control.Monad.Catch
 import Control.Monad.Trans.Control
-import Control.Monad.Trans.Resource
 import Data.Text                       hiding (map)
 import Preamble                        as Exports hiding (stripPrefix)
 
@@ -28,16 +23,4 @@
 -- | Strip the prefix with a '/' tacked on to the prefix.
 --
 stripPrefix' :: Text -> Text -> Maybe Text
-stripPrefix' prefix =
-  stripPrefix (prefix -/- mempty)
-
-type MonadBaseControlIO m =
-  ( MonadBaseControl IO m
-  , MonadIO m
-  )
-
-type MonadMain m =
-  ( MonadBaseControlIO m
-  , MonadResource m
-  , MonadCatch m
-  )
+stripPrefix' prefix = stripPrefix (prefix -/- mempty)
diff --git a/wolf.cabal b/wolf.cabal
--- a/wolf.cabal
+++ b/wolf.cabal
@@ -1,5 +1,5 @@
 name:                  wolf
-version:               0.3.3
+version:               0.3.4
 synopsis:              Amazon Simple Workflow Service Wrapper.
 description:           Wolf is a wrapper around Amazon Simple Workflow Service.
 homepage:              https://github.com/swift-nav/wolf
