diff --git a/examples/usersite.hs b/examples/usersite.hs
--- a/examples/usersite.hs
+++ b/examples/usersite.hs
@@ -7,6 +7,9 @@
 import Data.Maybe
 import Data.Text(Text)
 import Control.Applicative
+import Database.Persist.GenericSql.Raw (SqlBackend)
+import Control.Monad.Trans.Resource (runResourceT)
+import Control.Monad.Logger (runNoLoggingT)
 
 share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist|
 User
@@ -76,9 +79,9 @@
 
 
 handleUserNewR :: GHandler master VendUserTest RepHtml
-handleUserDeleteR :: Key SqlPersist (UserGeneric SqlPersist) -> GHandler master VendUserTest RepHtml
-handleUserEditR :: Key SqlPersist (UserGeneric SqlPersist) -> GHandler master VendUserTest RepHtml
-handleUserViewR :: Key SqlPersist (UserGeneric SqlPersist) -> GHandler master VendUserTest RepHtml
+handleUserDeleteR :: Key (UserGeneric SqlBackend) -> GHandler master VendUserTest RepHtml
+handleUserEditR :: Key (UserGeneric SqlBackend) -> GHandler master VendUserTest RepHtml
+handleUserViewR :: Key (UserGeneric SqlBackend) -> GHandler master VendUserTest RepHtml
 handleUserViewAllR :: GHandler master VendUserTest RepHtml
 
 handleUserNewR = newR UserP
@@ -102,9 +105,9 @@
 openConnectionCount = 10
 
 main :: IO ()
-main = withSqlitePool "test-usersite.db" openConnectionCount $ \pool -> do
+main = runNoLoggingT $ runResourceT $ withSqlitePool "test-usersite.db" openConnectionCount $ \pool -> do
     runSqlPool (runMigration migrateAll) pool
-    warpDebug 3030 $ VendUserTest pool
+    liftIO $ warpDebug 3030 $ VendUserTest pool
 
 instance RenderMessage VendUserTest FormMessage where
     renderMessage _ _ = defaultFormMessage
diff --git a/src/Yesod/VEND.hs b/src/Yesod/VEND.hs
--- a/src/Yesod/VEND.hs
+++ b/src/Yesod/VEND.hs
@@ -185,10 +185,11 @@
     default paramsFull :: ((SiteEntT a ~ SiteT a), (CRUD a), (ValT a ~ FullEntT a)) => a -> [EntityParam master (SiteEntT a) (FullEntT a)]
     paramsFull = params
     default get404Full :: ((YesodPersistBackend (SiteEntT a) ~ SqlPersist),
+                           (PersistEntityBackend val0 ~ SqlBackend),
                            (PersistEntity val0),
                            (YesodPersist (SiteEntT a)),
-                           (a ~ Key SqlPersist val0),
-                           (val0 ~ FullEntT (Key SqlPersist val0))) => 
+                           (a ~ KeyBackend SqlBackend val0),
+                           (val0 ~ FullEntT (KeyBackend SqlBackend val0))) => 
                            a -> GHandler master (SiteEntT a) (FullEntT a)
     get404Full key = runDB (get404 key)
 
@@ -204,7 +205,7 @@
  |]
 
 -- | Core typeclass of this package. Default implementations of handlers use other methods to provide sensible default views. They can be all overriden if needed.
-class ((SiteEntT (Key SqlPersist (ValT a)) ~ SiteT a),(EntityDeep (KeyT a))) => CRUD a where
+class ((SiteEntT (KeyBackend SqlBackend (ValT a)) ~ SiteT a), (PersistEntityBackend (ValT a) ~ SqlBackend), (EntityDeep (KeyT a))) => CRUD a where
     -- * types 
     -- | entity value type
     type ValT a
@@ -310,7 +311,7 @@
                      (YesodPersistBackend (SiteT a) ~ SqlPersist),
                      (RenderMessage (SiteT a) FormMessage),
                      (YesodPersist (SiteT a)),
-                     (KeyT a ~ Key SqlPersist (ValT a)),
+                     (KeyT a ~ KeyBackend SqlBackend (ValT a)),
                      (PersistEntity (ValT a))) => 
                      a -> GHandler master (SiteT a) RepHtml
     newR this = do
@@ -334,9 +335,9 @@
     default viewAllR :: ((YesodPersistBackend (SiteT a) ~ SqlPersist),
                          (YesodPersist (SiteT a)),
                          (Yesod (SiteT a)),
-                         (EntityDeep (Key SqlPersist (ValT a))), 
-                         (PersistEntityBackend (ValT a) ~ SqlPersist), 
-                         (KeyT a ~ Key SqlPersist (ValT a)), 
+                         (EntityDeep (KeyBackend SqlBackend (ValT a))), 
+                         (PersistEntityBackend (ValT a) ~ SqlBackend), 
+                         (KeyT a ~ KeyBackend SqlBackend (ValT a)), 
                          (PersistEntity (ValT a))) => a -> GHandler master (SiteT a) RepHtml
     viewAllR this = do
       values <- runDB $ selectList [] (viewAllOptions this)
@@ -376,7 +377,7 @@
        <a href=@{deleteRt this key}> <strong> Delete </strong>
        |]
 
-    default viewR :: ((Yesod (SiteT a)), (KeyT a ~ Key SqlPersist (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
+    default viewR :: ((Yesod (SiteT a)), (KeyT a ~ KeyBackend SqlBackend (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
     viewR this key = do
       val'full <- get404Full key
       defaultLayout $ do
@@ -395,7 +396,7 @@
                       (YesodPersist (SiteT a)),
                       (Yesod (SiteT a)),
                       (RenderMessage (SiteT a) FormMessage),
-                      (KeyT a ~ Key SqlPersist (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
+                      (KeyT a ~ KeyBackend SqlBackend (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
     editR this key = do
       val <- runDB $ get404 key
       ((result,fwidget), enctype) <- runFormPost =<< (form this (Just val))
@@ -419,7 +420,7 @@
     <input type="submit"> |]
  
     default deleteR :: ((RenderMessage (SiteT a) FormMessage), (YesodPersist (SiteT a)), (YesodPersistBackend (SiteT a) ~ SqlPersist), (Yesod (SiteT a)),
-                        (KeyT a ~ Key SqlPersist (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
+                        (KeyT a ~ KeyBackend SqlBackend (ValT a)), (PersistEntity (ValT a))) => a -> (KeyT a) -> GHandler master (SiteT a) RepHtml
     deleteR this key = do
        val'full <- get404Full key
        ((result,fwidget), enctype) <- runFormPost =<< (dForm this)
diff --git a/yesod-vend.cabal b/yesod-vend.cabal
--- a/yesod-vend.cabal
+++ b/yesod-vend.cabal
@@ -1,5 +1,5 @@
 Name:                yesod-vend
-Version:             0.2.0.0
+Version:             0.3.0.0
 Synopsis:            Simple CRUD classes for easy view creation for Yesod
 Description:         Simple CRUD classes for easy view creation for Yesod. See @Yesod.VEND@ for more informations and description how to use it.
 License:             BSD3
@@ -16,7 +16,8 @@
   Exposed-modules:     Yesod.VEND
   Hs-source-dirs:      src
   Build-depends:       base > 4 && <5
-                       , yesod-platform > 1.0 && < 1.1
+                       , yesod == 1.1.*
+                       , yesod-form
                        , persistent
                        , text
                        , blaze-html
@@ -27,13 +28,15 @@
   Main-is:            examples/usersite.hs
   Build-depends:      yesod-vend
                       , base > 4 && <5
-                      , yesod-platform > 1.0 && < 1.1
+                      , yesod == 1.1.*
+                      , yesod-form
                       , persistent
                       , persistent-sqlite
                       , text
                       , blaze-html
                       , hamlet
-                      , yesod
+                      , monad-logger
+                      , resourcet
   -- hack around missing -lpthread in persistent-sqlite
   Ghc-options: -optl-pthread
 
