diff --git a/apiary-authenticate.cabal b/apiary-authenticate.cabal
--- a/apiary-authenticate.cabal
+++ b/apiary-authenticate.cabal
@@ -1,5 +1,5 @@
 name:                apiary-authenticate
-version:             0.16.0
+version:             0.17.0
 synopsis:            authenticate support for apiary web framework.
 description:
   example: <https://github.com/philopon/apiary/blob/master/examples/auth.hs>
@@ -19,24 +19,24 @@
 library
   exposed-modules:     Web.Apiary.Authenticate
   other-modules:       Web.Apiary.Authenticate.Internal
-  build-depends:       base                 >=4.6  && <4.8
-                     , apiary               >=0.16 && <0.17
-                     , apiary-clientsession >=0.16 && <0.17
-                     , authenticate         >=1.3  && <1.4
+  build-depends:       base                 >=4.6      && <4.8
+                     , apiary               >=0.17     && <0.18
+                     , apiary-clientsession >=0.17     && <0.18
+                     , authenticate         >=1.3.2.10 && <1.4
 
-                     , monad-control        >=0.3  && <0.4
+                     , monad-control        >=0.3      && <0.4
 
-                     , http-client          >=0.3  && <0.4
-                     , http-client-tls      >=0.2  && <0.3
+                     , http-client          >=0.3      && <0.4
+                     , http-client-tls      >=0.2      && <0.3
 
-                     , data-default-class   >=0.0  && <0.1
-                     , bytestring           >=0.10 && <0.11
-                     , text                 >=1.1  && <1.2
-                     , http-types           >=0.8  && <0.9
-                     , binary               >=0.7  && <0.8
+                     , data-default-class   >=0.0      && <0.1
+                     , bytestring           >=0.10     && <0.11
+                     , text                 >=1.1      && <1.3
+                     , http-types           >=0.8      && <0.9
+                     , binary               >=0.7      && <0.8
 
-                     , resourcet            >=1.1  && <1.2
-                     , blaze-builder        >=0.3  && <0.4
+                     , resourcet            >=1.1      && <1.2
+                     , blaze-builder        >=0.3      && <0.4
 
   hs-source-dirs:      src
   ghc-options:         -O2 -Wall
diff --git a/src/Web/Apiary/Authenticate.hs b/src/Web/Apiary/Authenticate.hs
--- a/src/Web/Apiary/Authenticate.hs
+++ b/src/Web/Apiary/Authenticate.hs
@@ -33,23 +33,20 @@
 
 import Data.Apiary.Proxy
 import Data.Apiary.Extension
-import Data.Apiary.Extension.Internal
 
 initAuthWithManager :: (Has Session exts, MonadBaseControl IO m)
                     => Client.Manager -> I.AuthConfig
-                    -> Initializer exts m (I.Auth ': exts)
-initAuthWithManager mgr conf = Initializer $ \e -> do
-    I.authWith mgr conf $ \a -> return $ addExtension a e
+                    -> Initializer m exts (I.Auth ': exts)
+initAuthWithManager mgr conf = initializer' $ return (I.Auth mgr conf)
 
 initAuthWith :: (Has Session exts, MonadBaseControl IO m)
              => Client.ManagerSettings -> I.AuthConfig
-             -> Initializer exts m (I.Auth ': exts)
-initAuthWith ms conf = Initializer $ \e -> do
-    control $ \run -> Client.withManager ms $ \mgr ->
-        I.authWith mgr conf $ \a -> run . return $ addExtension a e
+             -> Initializer m exts (I.Auth ': exts)
+initAuthWith ms conf = initializerBracket' $ \m ->
+    control $ \run -> Client.withManager ms (\mgr -> run . m $ I.Auth mgr conf)
 
 initAuth :: (Has Session exts, MonadBaseControl IO m)
-         => I.AuthConfig -> Initializer exts m (I.Auth ': exts)
+         => I.AuthConfig -> Initializer m exts (I.Auth ': exts)
 initAuth = initAuthWith tlsManagerSettings
 
 -- | default auth handlers. since 0.8.0.0.
diff --git a/src/Web/Apiary/Authenticate/Internal.hs b/src/Web/Apiary/Authenticate/Internal.hs
--- a/src/Web/Apiary/Authenticate/Internal.hs
+++ b/src/Web/Apiary/Authenticate/Internal.hs
@@ -30,7 +30,6 @@
 import Data.List
 import Data.Apiary.SList
 import Data.Apiary.Proxy
-import Data.Apiary.Extension
 import Data.Default.Class
 
 import Blaze.ByteString.Builder
@@ -69,11 +68,6 @@
     { manager           :: Client.Manager
     , config            :: AuthConfig
     }
-
-authWith :: MonadBaseControl IO m
-         => Client.Manager
-         -> AuthConfig -> (Auth -> m a) -> m a
-authWith mgr conf m = m (Auth mgr conf)
 
 authHandler :: (Monad m, MonadIO actM, Has Session exts)
             => Auth -> ApiaryT exts prms actM m ()
