diff --git a/gore-and-ash-async.cabal b/gore-and-ash-async.cabal
--- a/gore-and-ash-async.cabal
+++ b/gore-and-ash-async.cabal
@@ -1,5 +1,5 @@
 name:                gore-and-ash-async
-version:             1.0.1.0
+version:             1.1.0.0
 synopsis:            Core module for Gore&Ash engine that embeds async IO actions into game loop.
 description:         Please see README.md
 homepage:            https://github.com/TeaspotStudio/gore-and-ash-async#readme
@@ -29,9 +29,11 @@
                     , gore-and-ash >= 1.1.0.1
                     , hashable >= 1.2.4.0
                     , mtl >= 2.2.1
+                    , resourcet >= 1.1.7.1
                     , transformers >= 0.4.2.0
+                    , transformers-base >= 0.4.4
                     , unordered-containers >= 0.2.5.1
-
+                    
   default-extensions: 
                       BangPatterns
                       DeriveGeneric
diff --git a/src/Game/GoreAndAsh/Async/Module.hs b/src/Game/GoreAndAsh/Async/Module.hs
--- a/src/Game/GoreAndAsh/Async/Module.hs
+++ b/src/Game/GoreAndAsh/Async/Module.hs
@@ -13,9 +13,12 @@
   ) where
 
 import Control.Concurrent.Async
+import Control.Monad.Base
 import Control.Monad.Catch
+import Control.Monad.Error.Class 
 import Control.Monad.Fix 
 import Control.Monad.State.Strict
+import Control.Monad.Trans.Resource
 import Data.Proxy 
 
 import Game.GoreAndAsh
@@ -44,8 +47,14 @@
 --
 -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module.
 newtype AsyncT s m a = AsyncT { runAsyncT :: StateT (AsyncState s) m a }
-  deriving (Functor, Applicative, Monad, MonadState (AsyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)
+  deriving (Functor, Applicative, Monad, MonadState (AsyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e)
 
+instance MonadBase IO m => MonadBase IO (AsyncT s m) where
+  liftBase = AsyncT . liftBase
+
+instance MonadResource m => MonadResource (AsyncT s m) where 
+  liftResourceT = AsyncT . liftResourceT
+  
 instance GameModule m s => GameModule (AsyncT s m) (AsyncState s) where 
   type ModuleState (AsyncT s m) = AsyncState s
   runModule (AsyncT m) s1 = do
