diff --git a/gore-and-ash-network.cabal b/gore-and-ash-network.cabal
--- a/gore-and-ash-network.cabal
+++ b/gore-and-ash-network.cabal
@@ -1,5 +1,5 @@
 name:                gore-and-ash-network
-version:             1.2.2.0
+version:             1.3.2.0
 synopsis:            Core module for Gore&Ash engine with low level network API
 description:         Please see README.md
 homepage:            https://github.com/Teaspot-Studio/gore-and-ash-network
@@ -70,8 +70,11 @@
                      , integer-gmp >= 1.0.0.0
                      , mtl >= 2.2.1
                      , network >= 2.6.2.1
+                     , resourcet >= 1.1.7.1
                      , text >= 1.2.1.3
                      , text-show >= 2
+                     , transformers >= 0.4.2
+                     , transformers-base >= 0.4.4
                      , typesafe-endian >= 0.1
                      , unordered-containers >= 0.2.5.1
 
diff --git a/src/Game/GoreAndAsh/Network/Module.hs b/src/Game/GoreAndAsh/Network/Module.hs
--- a/src/Game/GoreAndAsh/Network/Module.hs
+++ b/src/Game/GoreAndAsh/Network/Module.hs
@@ -14,10 +14,13 @@
     NetworkT(..)
   ) where
 
+import Control.Monad.Base 
 import Control.Monad.Catch
+import Control.Monad.Error.Class 
 import Control.Monad.Extra (whenJust)
 import Control.Monad.Fix
 import Control.Monad.State.Strict
+import Control.Monad.Trans.Resource 
 import Data.Hashable 
 import Game.GoreAndAsh
 import Game.GoreAndAsh.Network.State
@@ -49,8 +52,14 @@
 --
 -- The module is NOT pure within first phase (see 'ModuleStack' docs), therefore currently only 'IO' end monad can handler the module.
 newtype NetworkT s m a = NetworkT { runNetworkT :: StateT (NetworkState s) m a }
-  deriving (Functor, Applicative, Monad, MonadState (NetworkState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask)
+  deriving (Functor, Applicative, Monad, MonadState (NetworkState s), MonadFix, MonadTrans, MonadIO, MonadThrow, MonadCatch, MonadMask, MonadError e)
 
+instance MonadBase IO m => MonadBase IO (NetworkT s m) where 
+  liftBase = NetworkT . liftBase 
+
+instance MonadResource m => MonadResource (NetworkT s m) where 
+  liftResourceT = NetworkT . liftResourceT
+  
 instance GameModule m s => GameModule (NetworkT s m) (NetworkState s) where
   type ModuleState (NetworkT s m) = NetworkState s
   
