diff --git a/yesod-examples.cabal b/yesod-examples.cabal
--- a/yesod-examples.cabal
+++ b/yesod-examples.cabal
@@ -1,5 +1,5 @@
 Name:                yesod-examples
-Version:             0.5.1
+Version:             0.6.0
 Synopsis:            Example programs using the Yesod Web Framework.
 Description:         These are the same examples and tutorials found on the documentation site.
 Homepage:            http://docs.yesodweb.com/
@@ -17,7 +17,7 @@
 Executable blog
   Main-is:             yesod/tutorial/blog.lhs
   Build-depends:       base >= 4 && < 5,
-                       yesod >= 0.5.0.1 && < 0.6
+                       yesod >= 0.6 && < 0.7
 
 Executable ajax
   Main-is:             yesod/tutorial/ajax.lhs
@@ -47,9 +47,10 @@
   Main-is:             yesod/tutorial/form.lhs
 
 Executable mkToForm
-  Main-is:             yesod/tutorial/mkToForm.hs
+  Main-is:             mkToForm.hs
   Build-depends:       time,
-                       persistent >= 0.2.0.1 && < 0.3
+                       persistent >= 0.3 && < 0.4
+  hs-source-dirs:      yesod/tutorial
 
 Executable persistent-synopsis
   Main-is:             synopsis/persistent.lhs
diff --git a/yesod/tutorial/ajax.lhs b/yesod/tutorial/ajax.lhs
--- a/yesod/tutorial/ajax.lhs
+++ b/yesod/tutorial/ajax.lhs
@@ -86,7 +86,7 @@
 >       [] -> notFound
 >       page:_ -> defaultLayoutJson (do
 >           setTitle $ string $ pageName page
->           addBody $ html page
+>           addHamlet $ html page
 >           ) (json page)
 >  where
 >   html page = [$hamlet|
diff --git a/yesod/tutorial/file-echo.lhs b/yesod/tutorial/file-echo.lhs
--- a/yesod/tutorial/file-echo.lhs
+++ b/yesod/tutorial/file-echo.lhs
@@ -13,7 +13,7 @@
 
 > getHomepage = defaultLayout $ do
 >   setTitle $ string "Upload a file"
->   addBody [$hamlet|
+>   addHamlet [$hamlet|
 > %form!method=post!action=.!enctype=multipart/form-data
 >   File name:
 >   %input!type=file!name=file
diff --git a/yesod/tutorial/form.lhs b/yesod/tutorial/form.lhs
--- a/yesod/tutorial/form.lhs
+++ b/yesod/tutorial/form.lhs
@@ -35,7 +35,7 @@
 
 <p>extractBody returns the HTML of a widget and "passes" all of the other declarations (the CSS, Javascript, etc) up to the parent widget. The rest of this is just standard Hamlet code and our main function.</p>
 
->         addBody [$hamlet|
+>         addHamlet [$hamlet|
 > %p Last result: $show.res$
 > %form!enctype=$enctype$
 >     %table
diff --git a/yesod/tutorial/generalized-hamlet.lhs b/yesod/tutorial/generalized-hamlet.lhs
--- a/yesod/tutorial/generalized-hamlet.lhs
+++ b/yesod/tutorial/generalized-hamlet.lhs
@@ -16,17 +16,18 @@
 > data NewHamlet = NewHamlet
 > mkYesod "NewHamlet" [$parseRoutes|/ RootR GET|]
 > instance Yesod NewHamlet where approot _ = ""
+> type Widget = GWidget NewHamlet NewHamlet
 > 
 > myHtml :: Html
 > myHtml = [$hamlet|%p Just don't use any URLs in here!|]
 >
-> myInnerWidget :: Widget NewHamlet ()
+> myInnerWidget :: Widget ()
 > myInnerWidget = do
->     addBody [$hamlet|
+>     addHamlet [$hamlet|
 >   #inner Inner widget
 >   $myHtml$
 > |]
->     addStyle [$cassius|
+>     addCassius [$cassius|
 >#inner
 >     color: red|]
 > 
@@ -36,12 +37,12 @@
 >     %a!href=@RootR@ Link to home
 > |]
 > 
-> myWidget :: Widget NewHamlet ()
+> myWidget :: Widget ()
 > myWidget = [$hamlet|
 >     %h1 Embed another widget
 >     ^myInnerWidget^
 >     %h1 Embed a Hamlet
->     ^addBody.myPlainTemplate^
+>     ^addHamlet.myPlainTemplate^
 > |]
 > 
 > getRootR :: GHandler NewHamlet NewHamlet RepHtml
diff --git a/yesod/tutorial/i18n.lhs b/yesod/tutorial/i18n.lhs
--- a/yesod/tutorial/i18n.lhs
+++ b/yesod/tutorial/i18n.lhs
@@ -27,7 +27,7 @@
 >             ]
 >     defaultLayout $ do
 >       setTitle $ string "I18N Homepage"
->       addBody [$hamlet|
+>       addHamlet [$hamlet|
 > %h1 $hello$
 > %p In other languages:
 > %ul
diff --git a/yesod/tutorial/mkToForm.hs b/yesod/tutorial/mkToForm.hs
--- a/yesod/tutorial/mkToForm.hs
+++ b/yesod/tutorial/mkToForm.hs
@@ -8,14 +8,11 @@
 import Database.Persist.Sqlite
 import Database.Persist.TH
 import Data.Time (Day)
+import MkToForm
 
-share2 mkToForm mkPersist [$persist|
-Entry
-    title String
-    day Day Desc toFormField=YesodJquery.jqueryDayField
-    content Html toFormField=YesodNic.nicHtmlField
-    deriving
-|]
+jqueryDayField' :: YesodJquery m => FormFieldSettings -> FormletField s m Day
+jqueryDayField' = jqueryDayField def
+mkToForm (undefined :: Entry)
 
 instance Item Entry where
     itemTitle = entryTitle
@@ -44,7 +41,7 @@
     entries <- runDB $ selectList [] [EntryDayDesc] 0 0
     defaultLayout $ do
         setTitle $ string "Yesod Blog Tutorial Homepage"
-        addBody [$hamlet|
+        addHamlet [$hamlet|
 %h1 Archive
 %ul
     $forall entries entry
@@ -58,7 +55,7 @@
     entry <- runDB $ get404 entryid
     defaultLayout $ do
         setTitle $ string $ entryTitle entry
-        addBody [$hamlet|
+        addHamlet [$hamlet|
 %h1 $entryTitle.entry$
 %h2 $show.entryDay.entry$
 $entryContent.entry$
diff --git a/yesod/tutorial/session.lhs b/yesod/tutorial/session.lhs
--- a/yesod/tutorial/session.lhs
+++ b/yesod/tutorial/session.lhs
@@ -9,7 +9,7 @@
 > |]
 > getRoot :: Handler RepHtml
 > getRoot = do
->     sess <- reqSession `fmap` getRequest
+>     sess <- getSession
 >     hamletToRepHtml [$hamlet|
 > %form!method=post
 >     %input!type=text!name=key
diff --git a/yesod/tutorial/widgets.lhs b/yesod/tutorial/widgets.lhs
--- a/yesod/tutorial/widgets.lhs
+++ b/yesod/tutorial/widgets.lhs
@@ -21,17 +21,17 @@
 > #wrapper ^h^
 > %footer Brought to you by Yesod Widgets&trade;
 > |]
-> getRootR = defaultLayout $ flip wrapWidget wrapper $ do
+> getRootR = defaultLayout $ wrapper $ do
 >     i <- newIdent
 >     setTitle $ string "Hello Widgets"
->     addStyle [$cassius|
+>     addCassius [$cassius|
 >   #$i$
 >       color: red|]
 >     addStylesheet $ StaticR $ StaticRoute ["style.css"] []
 >     addStylesheetRemote "http://localhost:3000/static/style2.css"
 >     addScriptRemote "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
 >     addScript $ StaticR $ StaticRoute ["script.js"] []
->     addBody [$hamlet|
+>     addHamlet [$hamlet|
 > %h1#$i$ Welcome to my first widget!!!
 > %p
 >     %a!href=@RootR@ Recursive link.
@@ -39,14 +39,14 @@
 >     %a!href=@FormR@ Check out the form.
 > %p.noscript Your script did not load. :(
 > |]
->     addHead [$hamlet|%meta!keywords=haskell|]
+>     addHtmlHead [$hamlet|%meta!keywords=haskell|]
 > 
 > handleFormR = do
->     (res, form, enctype) <- runFormPost $ fieldsToTable $ (,,,,,,,,)
+>     (res, form, enctype, nonce) <- runFormPost $ fieldsToTable $ (,,,,,,,,)
 >         <$> stringField "My Field" Nothing
 >         <*> stringField "Another field" (Just "some default text")
 >         <*> intField "A number field" (Just 5)
->         <*> jqueryDayField "A day field" Nothing
+>         <*> jqueryDayField def "A day field" Nothing
 >         <*> timeField "A time field" Nothing
 >         <*> boolField "A checkbox" (Just False)
 >         <*> jqueryAutocompleteField AutoCompleteR "Autocomplete" Nothing
@@ -57,19 +57,20 @@
 >                     FormSuccess (_, _, _, _, _, _, _, x, _) -> Just x
 >                     _ -> Nothing
 >     defaultLayout $ do
->         addStyle [$cassius|
+>         addCassius [$cassius|
 > .tooltip
 >     color: #666
 >     font-style: italic
 > textarea.html
 >     width: 300px
 >     height: 150px|]
->         wrapWidget form $ \h -> [$hamlet|
+>         addWidget [$hamlet|
 > %form!method=post!enctype=$enctype$
 >     %table
->         ^h^
+>         ^form^
 >         %tr
 >             %td!colspan=2
+>                 $nonce$
 >                 %input!type=submit
 >     $maybe mhtml html
 >         $html$
