diff --git a/avers-server.cabal b/avers-server.cabal
--- a/avers-server.cabal
+++ b/avers-server.cabal
@@ -1,55 +1,56 @@
-name: avers-server
-version: 0.0.17.0
-cabal-version: >=1.10
-build-type: Simple
-license: MIT
-license-file: LICENSE
-copyright: 2016 Tomas Carnecky
-maintainer: tomas.carnecky@gmail.com
-homepage: http://github.com/wereHamster/avers-server
-synopsis: Server implementation of the Avers API
-description:
-    See README.md
-category: Avers
-author: Tomas Carnecky
+name:                avers-server
+version:             0.0.17.2
+synopsis:            Server implementation of the Avers API
+description:         See README.md
+homepage:            http://github.com/wereHamster/avers-server
+license:             MIT
+license-file:        LICENSE
+author:              Tomas Carnecky
+maintainer:          tomas.carnecky@gmail.com
+copyright:           2016 Tomas Carnecky
+category:            Avers
+build-type:          Simple
+cabal-version:       >=1.10
 
 source-repository head
-    type: git
-    location: https://github.com/wereHamster/avers-server
+  type:     git
+  location: https://github.com/wereHamster/avers
 
 library
-    exposed-modules:
-        Avers.Server
-    build-depends:
-        base >=4.7 && <5,
-        aeson >=1.0.2.0 && <1.1,
-        avers -any,
-        avers-api -any,
-        base64-bytestring >=1.0.0.1 && <1.1,
-        bytestring >=0.10.8.1 && <0.11,
-        bytestring-conversion >=0.3.1 && <0.4,
-        containers >=0.5.7.1 && <0.6,
-        cookie >=0.4.2.1 && <0.5,
-        cryptonite ==0.20.*,
-        either >=4.4.1.1 && <4.5,
-        http-types >=0.9.1 && <0.10,
-        memory ==0.13.*,
-        mtl >=2.2.1 && <2.3,
-        resource-pool >=0.2.3.2 && <0.3,
-        rethinkdb-client-driver >=0.0.23 && <0.1,
-        servant >=0.9.0.1 && <0.10,
-        servant-server >=0.9.0.1 && <0.10,
-        stm >=2.4.4.1 && <2.5,
-        text >=1.2.2.1 && <1.3,
-        time >=1.6.0.1 && <1.7,
-        transformers >=0.5.2.0 && <0.6,
-        wai >=3.2.1.1 && <3.3,
-        wai-websockets >=3.0.1.1 && <3.1,
-        websockets >=0.9.7.0 && <0.10
-    default-language: Haskell2010
-    hs-source-dirs: src
-    other-modules:
-        Avers.Server.Authorization
-        Avers.Server.Instances
-    ghc-options: -Wall
+  default-language:    Haskell2010
+  hs-source-dirs:      src
+  ghc-options:         -Wall
 
+  exposed-modules:
+     Avers.Server
+
+  other-modules:
+     Avers.Server.Authorization
+   , Avers.Server.Instances
+
+  build-depends:
+     base >= 4.7 && < 5
+   , aeson
+   , avers
+   , avers-api
+   , base64-bytestring
+   , bytestring
+   , bytestring-conversion
+   , containers
+   , cookie
+   , cryptonite
+   , either
+   , http-types
+   , memory
+   , mtl
+   , resource-pool
+   , rethinkdb-client-driver
+   , servant
+   , servant-server
+   , stm
+   , text
+   , time
+   , transformers
+   , wai
+   , wai-websockets
+   , websockets
diff --git a/src/Avers/Server.hs b/src/Avers/Server.hs
--- a/src/Avers/Server.hs
+++ b/src/Avers/Server.hs
@@ -65,7 +65,7 @@
 
 -- | Convert the 'Credentials' into an 'ObjId' to which the ceredentials refer.
 -- That's the object the client is authenticated as.
-credentialsObjId :: Handle -> Credentials -> ExceptT ServantErr IO ObjId
+credentialsObjId :: Handle -> Credentials -> Handler ObjId
 credentialsObjId aversH cred = do
     errOrObjId <- case cred of
         SessionIdCredential sId -> liftIO $ evalAvers aversH $
@@ -76,12 +76,12 @@
         Right s -> pure s
 
 
-failWith :: Text -> ExceptT ServantErr IO b
+failWith :: Text -> Handler b
 failWith e = throwError $ err500
     { errBody = LBS.fromChunks [T.encodeUtf8 e] }
 
 
-aversResult :: Either AversError a -> ExceptT ServantErr IO a
+aversResult :: Either AversError a -> Handler a
 aversResult res = case res of
     Left e -> case e of
         DatabaseError detail                  -> failWith $ "database " <> detail
@@ -96,11 +96,11 @@
     Right r -> pure r
 
 
-reqAvers :: Handle -> Avers a -> ExceptT ServantErr IO a
+reqAvers :: Handle -> Avers a -> Handler a
 reqAvers aversH m = liftIO (evalAvers aversH m) >>= aversResult
 
 
-cacheableResponse :: (ToJSON a) => Maybe Text -> a -> ExceptT ServantErr IO (Cacheable a)
+cacheableResponse :: (ToJSON a) => Maybe Text -> a -> Handler (Cacheable a)
 cacheableResponse mbValidationToken a = do
     let etag = T.decodeUtf8 $ convertToBase Base64 $ (hashlazy (encode a) :: Digest SHA3_256)
     if mbValidationToken == Just (etagVersion <> ":" <> etag)
@@ -302,7 +302,7 @@
     sessionCookieName     = "session"
     sessionExpirationTime = 2 * 365 * 24 * 60 * 60
 
-    mkSetCookie :: SessionId -> ExceptT ServantErr IO SetCookie
+    mkSetCookie :: SessionId -> Handler SetCookie
     mkSetCookie sId = do
         now <- liftIO $ getCurrentTime
         pure $ def
diff --git a/src/Avers/Server/Authorization.hs b/src/Avers/Server/Authorization.hs
--- a/src/Avers/Server/Authorization.hs
+++ b/src/Avers/Server/Authorization.hs
@@ -92,7 +92,7 @@
 --------------------------------------------------------------------------------
 -- | Run the authorization logic inside of the Servant monad.
 
-runAuthorization :: Handle -> Authz -> ExceptT ServantErr IO ()
+runAuthorization :: Handle -> Authz -> Handler ()
 runAuthorization _      []     = pure ()
 runAuthorization aversH (x:xs) = do
     res <- liftIO $ evalAvers aversH x
