diff --git a/higher-leveldb.cabal b/higher-leveldb.cabal
--- a/higher-leveldb.cabal
+++ b/higher-leveldb.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                higher-leveldb
-version:             0.5.0.2
+version:             0.6.0.0
 synopsis:            A rich monadic API for working with leveldb databases.
 description:         A rich monadic API for working with leveldb databases.
 homepage:            https://github.com/jeremyjh/higher-leveldb
@@ -35,7 +35,7 @@
                      , resourcet       >=  1.2.0 && <= 1.3
                      , transformers >= 0.3 && < 0.6
                      , transformers-base >= 0.4.1 && < 0.5
-                     , unliftio-core >= 0.1 && < 0.2
+                     , unliftio-core >= 0.1 && < 0.3
 
 
 test-suite spec
diff --git a/src/Database/LevelDB/Higher.hs b/src/Database/LevelDB/Higher.hs
--- a/src/Database/LevelDB/Higher.hs
+++ b/src/Database/LevelDB/Higher.hs
@@ -69,12 +69,10 @@
 import           Data.Default                      (def)
 import qualified Database.LevelDB                  as LDB
 import           Database.LevelDB
-    hiding (put, get, delete, write, withSnapshot)
+    hiding (put, get, delete, withSnapshot)
 import           Control.Monad.Trans.Resource
 import           Control.Monad.Catch               (MonadCatch (..)
                                                    , MonadMask (..))
-import           Control.Monad.IO.Unlift
-
 #if MIN_VERSION_mtl(2,2,1)
 import qualified Control.Monad.Except              as Except
 #else
@@ -83,7 +81,6 @@
 
 import qualified Control.Monad.Trans.Cont          as Cont
 import qualified Control.Monad.Trans.Identity      as Identity
-import qualified Control.Monad.Trans.List          as List
 import qualified Control.Monad.Trans.Maybe         as Maybe
 import qualified Control.Monad.Trans.State         as State
 import qualified Control.Monad.Trans.Writer        as Writer
@@ -144,7 +141,7 @@
 -- If you aren't building a custom monad stack you can just use the 'LevelDB' alias.
 newtype LevelDBT m a
         =  LevelDBT { unLevelDBT :: ReaderT DBContext (ResourceT m) a }
-            deriving ( Functor, Applicative, Monad, MonadIO, MonadThrow)
+            deriving ( Functor, Applicative, Monad, MonadIO, MonadThrow, MonadUnliftIO, MonadMask)
 
 instance (MonadBase b m) => MonadBase b (LevelDBT m) where
     liftBase = lift . liftBase
@@ -159,24 +156,6 @@
     catch (LevelDBT m) c =
       LevelDBT . ReaderT $ \r -> runReaderT m r `catch` \e -> runReaderT (unLevelDBT (c e)) r
 
-instance MonadMask m => MonadMask (LevelDBT m) where
-    mask a = LevelDBT . ReaderT $ \e -> mask $ \u -> runReaderT (unLevelDBT (a $ q u)) e
-      where
-        q ::  (ResourceT m a -> ResourceT m a) -> LevelDBT m a -> LevelDBT m a
-        q u (LevelDBT (ReaderT b)) =
-          LevelDBT $ ReaderT (u . b)
-    uninterruptibleMask a =
-      LevelDBT . ReaderT $ \e -> uninterruptibleMask $ \u -> runReaderT (unLevelDBT (a $ q u)) e
-      where
-        q ::  (ResourceT m a -> ResourceT m a) -> LevelDBT m a -> LevelDBT m a
-        q u (LevelDBT (ReaderT b)) =
-          LevelDBT $ ReaderT (u . b)
-
-instance MonadUnliftIO m => MonadUnliftIO (LevelDBT m) where
-  askUnliftIO = LevelDBT $
-                withUnliftIO $ \u ->
-                return (UnliftIO (unliftIO u . unLevelDBT))
-
 -- | MonadLevelDB class used by all the public functions in this module.
 class ( Monad m
       , MonadThrow m
@@ -204,7 +183,6 @@
 INST(Monad m,ReaderT r, mapReaderT) --Monad m is a no-op to save another define
 INST(Monad m,Maybe.MaybeT, Maybe.mapMaybeT)
 INST(Monad m,Identity.IdentityT, Identity.mapIdentityT)
-INST(Monad m,List.ListT, List.mapListT)
 INST(Monad m,Cont.ContT r, Cont.mapContT)
 INST(Monad m,State.StateT s, State.mapStateT )
 INST(Monad m,Strict.StateT s, Strict.mapStateT )
