diff --git a/Scaffolding/Scaffolder.hs b/Scaffolding/Scaffolder.hs
--- a/Scaffolding/Scaffolder.hs
+++ b/Scaffolding/Scaffolder.hs
@@ -137,7 +137,8 @@
     mkDir "deploy"
     mkDir "Settings"
     mkDir "messages"
-     
+    mkDir "app"
+
     writeFile' "deploy/Procfile" $(codegen "deploy/Procfile")
 
     case backend of
@@ -148,7 +149,7 @@
 
     writeFile' "config/settings.yml" $(codegen "config/settings.yml")
     writeFile' "config/keter.yaml" $(codegen "config/keter.yaml")
-    writeFile' "main.hs" $(codegen "main.hs")
+    writeFile' "app/main.hs" $(codegen "app/main.hs")
     writeFile' "devel.hs" $(codegen "devel.hs")
     writeFile' (project ++ ".cabal") $(codegen "project.cabal")
 
diff --git a/scaffold/Application.hs.cg b/scaffold/Application.hs.cg
--- a/scaffold/Application.hs.cg
+++ b/scaffold/Application.hs.cg
@@ -19,9 +19,9 @@
 -- Don't forget to add new modules to your cabal file!
 import Handler.Home
 
--- This line actually creates our YesodSite instance. It is the second half
--- of the call to mkYesodData which occurs in Foundation.hs. Please see
--- the comments there for more details.
+-- This line actually creates our YesodDispatch instance. It is the second half
+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the
+-- comments there for more details.
 mkYesodDispatch "~sitearg~" resources~sitearg~
 
 -- This function allocates resources (such as a database connection pool),
diff --git a/scaffold/Foundation.hs.cg b/scaffold/Foundation.hs.cg
--- a/scaffold/Foundation.hs.cg
+++ b/scaffold/Foundation.hs.cg
@@ -1,17 +1,4 @@
-module Foundation
-    ( ~sitearg~ (..)
-    , Route (..)
-    , ~sitearg~Message (..)
-    , resources~sitearg~
-    , Handler
-    , Widget
-    , Form
-    , maybeAuth
-    , requireAuth
-    , module Settings
-    , module Model
-    , getExtra
-    ) where
+module Foundation where
 
 import Prelude
 import Yesod
diff --git a/scaffold/Import.hs.cg b/scaffold/Import.hs.cg
--- a/scaffold/Import.hs.cg
+++ b/scaffold/Import.hs.cg
@@ -1,31 +1,28 @@
 module Import
-    ( module Prelude
-    , module Yesod
-    , module Foundation
-    , module Settings.StaticFiles
-    , module Settings.Development
-    , module Data.Monoid
-    , module Control.Applicative
-    , Text
-#if __GLASGOW_HASKELL__ < 704
-    , (<>)
-#endif
+    ( module Import
     ) where
 
-import Prelude hiding (writeFile, readFile, head, tail, init, last)
-import Yesod   hiding (Route(..))
-import Foundation
-#if __GLASGOW_HASKELL__ < 704
-import Data.Monoid (Monoid (mappend, mempty, mconcat))
+import           Prelude              as Import hiding (head, init, last,
+                                                 readFile, tail, writeFile)
+import           Yesod                as Import hiding (Route (..))
+
+import           Control.Applicative  as Import (pure, (<$>), (<*>))
+import           Data.Text            as Import (Text)
+
+import           Foundation           as Import
+import           Model                as Import
+import           Settings             as Import
+import           Settings.Development as Import
+import           Settings.StaticFiles as Import
+
+#if __GLASGOW_HASKELL__ >= 704
+import           Data.Monoid          as Import
+                                                 (Monoid (mappend, mempty, mconcat),
+                                                 (<>))
 #else
-import Data.Monoid (Monoid (mappend, mempty, mconcat), (<>))
-#endif
-import Control.Applicative ((<$>), (<*>), pure)
-import Data.Text (Text)
-import Settings.StaticFiles
-import Settings.Development
+import           Data.Monoid          as Import
+                                                 (Monoid (mappend, mempty, mconcat))
 
-#if __GLASGOW_HASKELL__ < 704
 infixr 5 <>
 (<>) :: Monoid m => m -> m -> m
 (<>) = mappend
diff --git a/scaffold/Settings.hs.cg b/scaffold/Settings.hs.cg
--- a/scaffold/Settings.hs.cg
+++ b/scaffold/Settings.hs.cg
@@ -3,14 +3,7 @@
 -- In addition, you can configure a number of different aspects of Yesod
 -- by overriding methods in the Yesod typeclass. That instance is
 -- declared in the Foundation.hs file.
-module Settings
-    ( widgetFile
-    , PersistConfig
-    , staticRoot
-    , staticDir
-    , Extra (..)
-    , parseExtra
-    ) where
+module Settings where
 
 import Prelude
 import Text.Shakespeare.Text (st)
diff --git a/scaffold/app/main.hs.cg b/scaffold/app/main.hs.cg
new file mode 100644
--- /dev/null
+++ b/scaffold/app/main.hs.cg
@@ -0,0 +1,8 @@
+import Prelude              (IO)
+import Yesod.Default.Config (fromArgs)
+import Yesod.Default.Main   (defaultMain)
+import Settings             (parseExtra)
+import Application          (makeApplication)
+
+main :: IO ()
+main = defaultMain (fromArgs parseExtra) makeApplication
diff --git a/scaffold/main.hs.cg b/scaffold/main.hs.cg
deleted file mode 100644
--- a/scaffold/main.hs.cg
+++ /dev/null
@@ -1,8 +0,0 @@
-import Prelude              (IO)
-import Yesod.Default.Config (fromArgs)
-import Yesod.Default.Main   (defaultMain)
-import Settings             (parseExtra)
-import Application          (makeApplication)
-
-main :: IO ()
-main = defaultMain (fromArgs parseExtra) makeApplication
diff --git a/scaffold/project.cabal.cg b/scaffold/project.cabal.cg
--- a/scaffold/project.cabal.cg
+++ b/scaffold/project.cabal.cg
@@ -81,8 +81,8 @@
     if flag(library-only)
         Buildable: False
 
-    main-is:           ../main.hs
-    hs-source-dirs:    dist
+    main-is:           main.hs
+    hs-source-dirs:    app
     build-depends:     base
                      , ~project~
                      , yesod-default
diff --git a/scaffold/tests/main.hs.cg b/scaffold/tests/main.hs.cg
--- a/scaffold/tests/main.hs.cg
+++ b/scaffold/tests/main.hs.cg
@@ -5,7 +5,6 @@
 module Main where
 
 import Import
-import Settings
 import Yesod.Default.Config
 import Yesod.Test
 import Application (makeFoundation)
diff --git a/yesod.cabal b/yesod.cabal
--- a/yesod.cabal
+++ b/yesod.cabal
@@ -1,5 +1,5 @@
 name:            yesod
-version:         1.1.1.2
+version:         1.1.2
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -23,7 +23,7 @@
   scaffold/LICENSE.cg
   scaffold/project.cabal.cg
   scaffold/mongoDBConnPool.cg
-  scaffold/main.hs.cg
+  scaffold/app/main.hs.cg
   scaffold/postgresqlConnPool.cg
   scaffold/Foundation.hs.cg
   scaffold/sqliteConnPool.cg
@@ -45,7 +45,6 @@
   scaffold/templates/homepage.julius.cg
   scaffold/templates/default-layout-wrapper.hamlet.cg
   scaffold/deploy/Procfile.cg
-  scaffold/main.hs.cg
   scaffold/devel.hs.cg
   scaffold/Handler/Home.hs.cg
   scaffold/templates/normalize.lucius.cg
