diff --git a/hMollom.cabal b/hMollom.cabal
--- a/hMollom.cabal
+++ b/hMollom.cabal
@@ -1,6 +1,6 @@
 name:                hMollom
-version:             0.3.1
-cabal-version:       >= 1.6
+version:             0.4.0
+cabal-version:       >= 1.14
 stability:           experimental
 synopsis:            Library to interact with the @Mollom anti-spam service
 description:         Library to interact with the @Mollom anti-spam service
@@ -22,20 +22,25 @@
                      src/Network/Mollom/Types.hs
                      src/Network/Mollom/Whitelist.hs
 
+source-repository this
+  type:     git
+  location: git://github.com/itkovian/hMollom.git
+  tag:      0.4.0
+
 library
     build-depends:     
-        aeson >= 0.5.0.0,
+        aeson >= 0.6.0.2,
         attoparsec >= 0.10,
-        base >= 3 && < 5, 
+        base >= 4 && < 5, 
         ghc-prim,
         old-locale >= 1,
-        time >= 1.1.4,
-        Crypto >= 4.2.0,
-        bytestring >= 0.9.1.4,
-        dataenc >= 0.13,
-        mtl >= 1.1.0.2,
-        HTTP >= 4000.2.2,
-        pureMD5 >= 2.1.0.2,
+        time >= 1.4,
+        Crypto >= 4.2.4,
+        bytestring >= 0.9.2.1,
+        dataenc >= 0.14.0.3,
+        mtl >= 2.0.1.0,
+        HTTP >= 4000.2.3,
+        pureMD5 >= 2.1.0.3,
         old-time,
         random 
     exposed-modules:
@@ -51,4 +56,4 @@
 
     ghc-options:       -Wall
     hs-source-dirs:      src
-
+    default-language:   Haskell2010
diff --git a/src/Network/Mollom/Internals.hs b/src/Network/Mollom/Internals.hs
--- a/src/Network/Mollom/Internals.hs
+++ b/src/Network/Mollom/Internals.hs
@@ -11,6 +11,7 @@
   , MollomError(..)
   , MollomResponse(..)
   , service
+  , serviceNoAuth
   ) where
 
 import           Control.Arrow (second)
@@ -83,7 +84,7 @@
         oauthH   = oauthHeader (("oauth_signature", oauthSig) : oauthHVs)
         contentH = replaceHeader HdrContentType "application/x-www-form-urlencoded"
         acceptH  = replaceHeader HdrAccept "application/json;q=0.8"
-    liftIO $ putStrLn $ "URI = " ++ (mollomServer ++ "/" ++ path)
+    --liftIO $ putStrLn $ "URI = " ++ (mollomServer ++ "/" ++ path)
     result <- liftIO $ liftM (processResponse errors) $ simpleHTTP (oauthH . contentH . acceptH 
                                                           $ case method of
                                                                POST -> let body = buildEncodedQuery params'
@@ -96,4 +97,25 @@
     ErrorT { runErrorT = return result }
 
 
-
+-- | This should only be used by the createSite API call. Otherwise, it will return an error.
+serviceNoAuth :: A.FromJSON a
+              => RequestMethod                        -- ^The HTTP method used in this request.
+              -> String                               -- ^The path to the requested resource
+              -> [(String, Maybe String)]             -- ^Request parameters
+              -> [String]                             -- ^Expected returned values
+              -> [((Int, Int, Int), MollomError)]     -- ^Possible error values
+              -> ErrorT MollomError IO (MollomResponse a)-- :: ErrorT (IO (Either MollomError (HTTPResponse String)))
+serviceNoAuth method path params expected errors = do
+    let params' = catSecondMaybes params
+        contentH = replaceHeader HdrContentType "application/x-www-form-urlencoded"
+        acceptH  = replaceHeader HdrAccept "application/json;q=0.8"
+    result <- liftIO $ liftM (processResponse errors) $ simpleHTTP (contentH . acceptH
+                                                          $ case method of
+                                                               POST -> let body = buildEncodedQuery params'
+                                                                       in postRequestWithBody (mollomServer ++ "/" ++ path) 
+                                                                          "application/x-www-form-urlencoded" 
+                                                                          body
+                                                               GET -> getRequest (mollomServer ++ "/" ++ path)
+                                                               _ -> undefined
+                                                          )
+    ErrorT { runErrorT = return result }
diff --git a/src/Network/Mollom/MollomMonad.hs b/src/Network/Mollom/MollomMonad.hs
--- a/src/Network/Mollom/MollomMonad.hs
+++ b/src/Network/Mollom/MollomMonad.hs
@@ -5,6 +5,7 @@
   ( Mollom
   , MollomState
   , mollomService
+  , mollomNoAuthService
   , runMollom
   ) where
 
@@ -37,6 +38,7 @@
       A.Success r' -> return $ mr { response = r' }
       _            -> throwError JSONParseError
 
+
 mollomService :: A.FromJSON a
               => String                           -- ^ Public key
               -> String                           -- ^ Private key
@@ -48,6 +50,9 @@
               -> Mollom (MollomResponse a)
 mollomService pubKey privKey method path params expected errors =
     (wrapMollom $ service pubKey privKey method path params expected errors) >>= pJSON
+
+mollomNoAuthService method path params expected errors = 
+    (wrapMollom $ serviceNoAuth method path params expected errors) >>= pJSON
 
 runMollom :: Mollom a -> MollomConfiguration -> MollomState -> IO (Either MollomError (Maybe ContentID, a))
 runMollom m config s = do
diff --git a/src/Network/Mollom/Site.hs b/src/Network/Mollom/Site.hs
--- a/src/Network/Mollom/Site.hs
+++ b/src/Network/Mollom/Site.hs
@@ -65,13 +65,20 @@
       mapM A.parseJSON ls 
 
 
+createSite :: Mollom (MollomResponse SiteResponse) -- ^ The Mollom monad in which the request is made
+createSite = do
+    let path = "site"
+        errors = generalErrors
+    mollomNoAuthService POST path [] [] errors
+
+
 -- | Request the information Mollom has about a specific site
 readSite :: Mollom (MollomResponse SiteResponse) -- ^ The Mollom monad in which the request is made
 readSite = do
     config <- ask
     let pubKey = mcPublicKey config
         privKey = mcPrivateKey config
-        path = "content/" ++ ( mcPublicKey config)
+        path = "site/" ++ ( mcPublicKey config)
         errors = generalErrors
     mollomService pubKey privKey GET path [] [] errors
 
@@ -83,7 +90,7 @@
     config <- ask
     let pubKey = mcPublicKey config
         privKey = mcPrivateKey config
-        path = "content/" ++ ( mcPublicKey config) ++ "/delete"
+        path = "site/" ++ ( mcPublicKey config) ++ "/delete"
         errors = [((4,0,4), SiteError SiteUnknown "")]
     mollomService pubKey privKey POST path [] [] errors
 
