diff --git a/snaplet-mongodb-minimalistic.cabal b/snaplet-mongodb-minimalistic.cabal
--- a/snaplet-mongodb-minimalistic.cabal
+++ b/snaplet-mongodb-minimalistic.cabal
@@ -1,5 +1,5 @@
 Name:               snaplet-mongodb-minimalistic
-Version:            0.0.6.7
+Version:            0.0.6.8
 Synopsis:           Minimalistic MongoDB Snaplet.
 Description:        Minimalistic MongoDB Snaplet.
 License:            BSD3
@@ -32,12 +32,13 @@
   Other-modules:
 
   Build-depends:
-    base                        == 4.*,
+    base                        >= 4 && < 5,
     lens                        >= 3.7 && < 3.9,
-    mtl                         == 2.*,
-    snap                        >= 0.10 && < 0.12,
-    snap-core                   == 0.9.*,
-    text                        == 0.11.*,
-    mongoDB                     == 1.3.*
+    mtl                         >= 2.0 && < 2.2,
+    transformers                >= 0.2 && < 0.4,
+    snap                        >= 0.11 && < 0.12,
+    text                        >= 0.11 && < 0.12,
+    mongoDB                     >= 1.3 && < 1.4
 
+  GHC-Options: -Wall
 
diff --git a/src/Snap/Snaplet/MongoDB/Core.hs b/src/Snap/Snaplet/MongoDB/Core.hs
--- a/src/Snap/Snaplet/MongoDB/Core.hs
+++ b/src/Snap/Snaplet/MongoDB/Core.hs
@@ -8,12 +8,12 @@
 , HasMongoDB(..)
 , MongoDBPool
 , mongoDBInit
+, mongoDBInit'
 ) where
 
 import           Data.Text (Text)
-
-import           Snap (SnapletInit, liftIO, makeSnaplet)
-
+import           Snap.Snaplet
+import           Control.Monad.IO.Class
 import           Database.MongoDB (Database, Host, Pipe, AccessMode (UnconfirmedWrites), close, isClosed, connect)
 import           System.IO.Pool (Pool, Factory (Factory), newPool)
 
@@ -49,11 +49,9 @@
 -- Usage:
 --
 -- > instance HasMongoDB App where
--- >     getMongoDB = getL (snapletValue . database)
---
--- Note: The @(.)@ is from 'Control.Category'.
-class HasMongoDB app where
-    getMongoDB :: app -> MongoDB
+-- >     getMongoDB app = view snapletValue (view database app)
+class HasMongoDB a where
+    getMongoDB :: a -> MongoDB
 
 ------------------------------------------------------------------------------
 -- | Initializer function.
diff --git a/src/Snap/Snaplet/MongoDB/Functions/M.hs b/src/Snap/Snaplet/MongoDB/Functions/M.hs
--- a/src/Snap/Snaplet/MongoDB/Functions/M.hs
+++ b/src/Snap/Snaplet/MongoDB/Functions/M.hs
@@ -18,9 +18,7 @@
 import           Control.Monad.Error (runErrorT)
 import           Control.Lens (cloneLens, use)
 
-import           Snap (MonadIO, MonadState, gets, liftIO) -- transformers, mtl
-import           Snap (SnapletLens)
-import           Snap (Snaplet, snapletValue)
+import           Snap (MonadIO, MonadState, liftIO, SnapletLens, snapletValue)
 import           Snap.Snaplet.MongoDB.Core
 
 import           Database.MongoDB (Action, AccessMode, Failure (ConnectionFailure), access)
diff --git a/src/Snap/Snaplet/MongoDB/Functions/S.hs b/src/Snap/Snaplet/MongoDB/Functions/S.hs
--- a/src/Snap/Snaplet/MongoDB/Functions/S.hs
+++ b/src/Snap/Snaplet/MongoDB/Functions/S.hs
@@ -15,9 +15,7 @@
 ) where
 
 import           Control.Monad.Error (runErrorT)
-
-import           Snap (MonadIO, MonadState, gets, liftIO) -- transformers, mtl
-import           Snap (Snaplet, snapletValue)
+import           Snap
 import           Snap.Snaplet.MongoDB.Core
 
 import           Database.MongoDB (Action, AccessMode, Failure (ConnectionFailure), access)
@@ -45,7 +43,7 @@
               -> Action IO a            -- ^ 'Action' you want to perform.
               -> m a                    -- ^ The action's result; in case of failure 'error' is called.
 unsafeWithDB' mode action = do
-    res <- (eitherWithDB' mode action)
+    res <- eitherWithDB' mode action
     either (error . show) return res
 
 ------------------------------------------------------------------------------
@@ -70,7 +68,7 @@
              -> Action IO a         -- ^ 'Action' you want to perform.
              -> m (Maybe a)         -- ^ 'Nothing' in case of failure or 'Just' the result of the action.
 maybeWithDB' mode action = do
-    res <- (eitherWithDB' mode action)
+    res <- eitherWithDB' mode action
     return $ either (const Nothing) Just res
 
 ------------------------------------------------------------------------------
@@ -102,5 +100,5 @@
          Right pip -> liftIO $ access pip mode database action
 
 getMongoAccessMode :: (MonadIO m, MonadState app m, HasMongoDB app) => m AccessMode
-getMongoAccessMode = gets getMongoDB >>= return . mongoAccessMode
+getMongoAccessMode = mongoAccessMode `liftM` gets getMongoDB
 {-# INLINE getMongoAccessMode #-}
