diff --git a/authenticate b/authenticate
index 35b7cf61..32c76842 160000
--- a/authenticate
+++ b/authenticate
@@ -1 +1 @@
-Subproject commit 35b7cf61c2fde25399e0a88c41c3cf29d60f1895
+Subproject commit 32c76842f1c3559ad241d407d6b712461eec9715
diff --git a/http-conduit b/http-conduit
deleted file mode 160000
index cfcbefe9..00000000
--- a/http-conduit
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit cfcbefe93ecea0b84225294b4edc133fd921d8db
diff --git a/package-list.sh b/package-list.sh
index 45fc6790..958c9604 100644
--- a/package-list.sh
+++ b/package-list.sh
@@ -1,15 +1,18 @@
#!/bin/bash
-pkgs=( ./http-conduit
- ./yesod-routes
+pkgs=( ./yesod-routes
./yesod-core
./yesod-json
./yesod-static
./yesod-persistent
./yesod-newsfeed
./yesod-form
- ./authenticate
+ ./authenticate/authenticate
+ ./authenticate/authenticate-oauth
+ ./authenticate/authenticate-kerberos
./yesod-auth
+ ./yesod-auth-oauth
+ ./yesod-auth-kerberos
./yesod-sitemap
./yesod-default
./yesod )
diff --git a/yesod-auth-kerberos/LICENSE b/yesod-auth-kerberos/LICENSE
new file mode 100644
index 00000000..8643e5d8
--- /dev/null
+++ b/yesod-auth-kerberos/LICENSE
@@ -0,0 +1,25 @@
+The following license covers this documentation, and the source code, except
+where otherwise indicated.
+
+Copyright 2010, Michael Snoyman. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/yesod-auth-kerberos/Setup.lhs b/yesod-auth-kerberos/Setup.lhs
new file mode 100755
index 00000000..1bc517f6
--- /dev/null
+++ b/yesod-auth-kerberos/Setup.lhs
@@ -0,0 +1,8 @@
+#!/usr/bin/env runhaskell
+
+> module Main where
+> import Distribution.Simple
+> import System.Cmd (system)
+
+> main :: IO ()
+> main = defaultMain
diff --git a/yesod-auth/Yesod/Auth/Kerberos.hs b/yesod-auth-kerberos/Yesod/Auth/Kerberos.hs
similarity index 100%
rename from yesod-auth/Yesod/Auth/Kerberos.hs
rename to yesod-auth-kerberos/Yesod/Auth/Kerberos.hs
diff --git a/yesod-auth-kerberos/include/qq.h b/yesod-auth-kerberos/include/qq.h
new file mode 100644
index 00000000..6b742913
--- /dev/null
+++ b/yesod-auth-kerberos/include/qq.h
@@ -0,0 +1,10 @@
+
+-- CPP macro which choses which quasyquotes syntax to use depending
+-- on GHC version.
+--
+-- QQ stands for quasyquote.
+#if GHC7
+# define QQ(x) x
+#else
+# define QQ(x) $x
+#endif
diff --git a/yesod-auth-kerberos/yesod-auth-kerberos.cabal b/yesod-auth-kerberos/yesod-auth-kerberos.cabal
new file mode 100644
index 00000000..267cafc6
--- /dev/null
+++ b/yesod-auth-kerberos/yesod-auth-kerberos.cabal
@@ -0,0 +1,39 @@
+name: yesod-auth-kerberos
+version: 0.8.0
+license: BSD3
+license-file: LICENSE
+author: Arash Rouhani
+maintainer: Arash Rouhani
+synopsis: Kerberos Authentication for Yesod.
+category: Web, Yesod
+stability: Stable
+cabal-version: >= 1.6.0
+build-type: Simple
+homepage: http://www.yesodweb.com/
+extra-source-files: include/qq.h
+description: Kerberos Authentication for Yesod.
+
+flag ghc7
+
+library
+ if flag(ghc7)
+ build-depends: base >= 4.3 && < 5
+ cpp-options: -DGHC7
+ else
+ build-depends: base >= 4 && < 4.3
+ build-depends: authenticate-kerberos >= 1.0 && < 1.1
+ , bytestring >= 0.9.1.4 && < 0.10
+ , yesod-core >= 0.10 && < 0.11
+ , yesod-auth >= 0.8 && < 0.9
+ , text >= 0.7 && < 0.12
+ , hamlet >= 0.10 && < 0.11
+ , yesod-form >= 0.4 && < 0.5
+ , transformers >= 0.2.2 && < 0.3
+
+ exposed-modules: Yesod.Auth.Kerberos
+ ghc-options: -Wall
+ include-dirs: include
+
+source-repository head
+ type: git
+ location: https://github.com/yesodweb/yesod
diff --git a/yesod-auth-oauth/LICENSE b/yesod-auth-oauth/LICENSE
new file mode 100644
index 00000000..8643e5d8
--- /dev/null
+++ b/yesod-auth-oauth/LICENSE
@@ -0,0 +1,25 @@
+The following license covers this documentation, and the source code, except
+where otherwise indicated.
+
+Copyright 2010, Michael Snoyman. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/yesod-auth-oauth/Setup.lhs b/yesod-auth-oauth/Setup.lhs
new file mode 100755
index 00000000..1bc517f6
--- /dev/null
+++ b/yesod-auth-oauth/Setup.lhs
@@ -0,0 +1,8 @@
+#!/usr/bin/env runhaskell
+
+> module Main where
+> import Distribution.Simple
+> import System.Cmd (system)
+
+> main :: IO ()
+> main = defaultMain
diff --git a/yesod-auth/Yesod/Auth/OAuth.hs b/yesod-auth-oauth/Yesod/Auth/OAuth.hs
similarity index 100%
rename from yesod-auth/Yesod/Auth/OAuth.hs
rename to yesod-auth-oauth/Yesod/Auth/OAuth.hs
diff --git a/yesod-auth-oauth/include/qq.h b/yesod-auth-oauth/include/qq.h
new file mode 100644
index 00000000..6b742913
--- /dev/null
+++ b/yesod-auth-oauth/include/qq.h
@@ -0,0 +1,10 @@
+
+-- CPP macro which choses which quasyquotes syntax to use depending
+-- on GHC version.
+--
+-- QQ stands for quasyquote.
+#if GHC7
+# define QQ(x) x
+#else
+# define QQ(x) $x
+#endif
diff --git a/yesod-auth-oauth/yesod-auth-oauth.cabal b/yesod-auth-oauth/yesod-auth-oauth.cabal
new file mode 100644
index 00000000..171f7dcd
--- /dev/null
+++ b/yesod-auth-oauth/yesod-auth-oauth.cabal
@@ -0,0 +1,38 @@
+name: yesod-auth-oauth
+version: 0.8.0
+license: BSD3
+license-file: LICENSE
+author: Hiromi Ishii
+maintainer: Hiromi Ishii
+synopsis: OAuth Authentication for Yesod.
+category: Web, Yesod
+stability: Stable
+cabal-version: >= 1.6.0
+build-type: Simple
+homepage: http://www.yesodweb.com/
+extra-source-files: include/qq.h
+description: Authentication for Yesod.
+
+flag ghc7
+
+library
+ if flag(ghc7)
+ build-depends: base >= 4.3 && < 5
+ cpp-options: -DGHC7
+ else
+ build-depends: base >= 4 && < 4.3
+ build-depends: authenticate-oauth >= 1.0 && < 1.1
+ , bytestring >= 0.9.1.4 && < 0.10
+ , yesod-core >= 0.10 && < 0.11
+ , yesod-auth >= 0.8 && < 0.9
+ , text >= 0.7 && < 0.12
+ , hamlet >= 0.10 && < 0.11
+ , yesod-form >= 0.4 && < 0.5
+
+ exposed-modules: Yesod.Auth.OAuth
+ ghc-options: -Wall
+ include-dirs: include
+
+source-repository head
+ type: git
+ location: https://github.com/yesodweb/yesod
diff --git a/yesod-auth/Yesod/Auth/Facebook.hs b/yesod-auth/Yesod/Auth/Facebook.hs
deleted file mode 100644
index c3ae5140..00000000
--- a/yesod-auth/Yesod/Auth/Facebook.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE OverloadedStrings #-}
-module Yesod.Auth.Facebook
- ( authFacebook
- , facebookLogin
- , facebookUrl
- , facebookLogout
- , getFacebookAccessToken
- ) where
-
-#include "qq.h"
-
-import Yesod.Auth
-import qualified Web.Authenticate.Facebook as Facebook
-import Data.Aeson
-import Data.Aeson.Types (parseMaybe)
-
-import Yesod.Form
-import Yesod.Handler
-import Yesod.Widget
-import Data.Text (Text)
-import Control.Monad (liftM, mzero, when)
-import Data.Monoid (mappend)
-import qualified Data.Aeson.Types
-import qualified Yesod.Auth.Message as Msg
-import Control.Monad.IO.Class (liftIO)
-import Control.Exception (throwIO)
-
--- | Route for login using this authentication plugin.
-facebookLogin :: AuthRoute
-facebookLogin = PluginR "facebook" ["forward"]
-
--- | This is just a synonym of 'facebookLogin'. Deprecated since
--- @yesod-auth 0.7.8@, please use 'facebookLogin' instead.
-facebookUrl :: AuthRoute
-facebookUrl = facebookLogin
-{-# DEPRECATED facebookUrl "Please use facebookLogin instead." #-}
-
--- | Route for logout using this authentication plugin. Per
--- Facebook's policies
--- (