diff --git a/gore-and-ash-sync.cabal b/gore-and-ash-sync.cabal
--- a/gore-and-ash-sync.cabal
+++ b/gore-and-ash-sync.cabal
@@ -1,5 +1,5 @@
 name:                gore-and-ash-sync
-version:             1.1.1.0
+version:             1.2.0.0
 synopsis:            Gore&Ash module for high level network synchronization
 description:         Please see README.md
 homepage:            https://github.com/Teaspot-Studio/gore-and-ash-sync
@@ -33,14 +33,17 @@
                      , deepseq >= 1.4.1.1
                      , exceptions >= 0.8.0.2
                      , gore-and-ash >= 1.1.0.0
-                     , gore-and-ash-actor >= 1.1.0.0
-                     , gore-and-ash-logging >= 1.1.0.0
-                     , gore-and-ash-network >= 1.1.0.0
+                     , gore-and-ash-actor >= 1.2.0.0
+                     , gore-and-ash-logging >= 1.2.0.0
+                     , gore-and-ash-network >= 1.2.0.0
                      , hashable >= 1.2.3.3
                      , mtl >= 2.2.1
+                     , resourcet >= 1.1.7.1
                      , text >= 1.2.2.0
+                     , transformers >= 0.4.2
+                     , transformers-base >= 0.4.4
                      , unordered-containers >= 0.2.5.1
-                     
+
   default-extensions:  
                        Arrows
                        BangPatterns
diff --git a/src/Game/GoreAndAsh/Sync/Module.hs b/src/Game/GoreAndAsh/Sync/Module.hs
--- a/src/Game/GoreAndAsh/Sync/Module.hs
+++ b/src/Game/GoreAndAsh/Sync/Module.hs
@@ -17,9 +17,12 @@
   , syncLog
   ) where
 
+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.Maybe
 import Data.Monoid 
 import Data.Proxy 
@@ -68,8 +71,14 @@
 --
 -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module.
 newtype SyncT s m a = SyncT { runSyncT :: StateT (SyncState s) m a }
-  deriving (Functor, Applicative, Monad, MonadState (SyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)
+  deriving (Functor, Applicative, Monad, MonadState (SyncState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e)
 
+instance MonadBase IO m => MonadBase IO (SyncT s m) where 
+  liftBase = SyncT . liftBase 
+
+instance MonadResource m => MonadResource (SyncT s m) where 
+  liftResourceT = SyncT . liftResourceT
+  
 instance (NetworkMonad m, LoggingMonad m, ActorMonad m, GameModule m s) => GameModule (SyncT s m) (SyncState s) where 
   type ModuleState (SyncT s m) = SyncState s
   runModule (SyncT m) s = do
