diff --git a/ironforge.cabal b/ironforge.cabal
--- a/ironforge.cabal
+++ b/ironforge.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.0.6
+version:             0.1.0.7
 
 -- A short (one-line) description of the package.
 synopsis:            A technical demo for Antisplice.
@@ -58,7 +58,7 @@
   other-extensions:    FlexibleContexts
   
   -- Other library packages from which modules are imported.
-  build-depends:       base >=4.6 && <4.7, chatty >=0.2 && <0.3, antisplice >=0.7.2 && <0.8, mtl >= 2.1 && < 2.2, transformers >= 0.3 && < 0.4
+  build-depends:       base >=4.6 && <4.7, chatty >=0.2 && <0.3, antisplice >=0.8 && <0.9, mtl >= 2.1 && < 2.2, transformers >= 0.3 && < 0.4
   
   -- Directories containing source files.
   -- hs-source-dirs:      
diff --git a/ironforge.hs b/ironforge.hs
--- a/ironforge.hs
+++ b/ironforge.hs
@@ -32,45 +32,8 @@
 
 module Main where
 
-import Text.Chatty.Printer
-import Text.Chatty.Finalizer
-import Text.Chatty.Interactor
-import Text.Chatty.Expansion
-import Text.Chatty.Extended.Printer
-import Text.Chatty.Extended.ANSI
-import Game.Antisplice.Monad.Dungeon
-import Game.Antisplice.Monad.Vocab
-import Game.Antisplice.Utils.Fail
-import Game.Antisplice.Utils.Graph
-import Game.Antisplice.Utils.Counter
-import Game.Antisplice.Utils.AVL
-import Game.Antisplice.Utils.Atoms
-import Game.Antisplice.Errors
-import Game.Antisplice.Monad
-import Game.Antisplice.Rooms
-import Game.Antisplice.Lang
+import Game.Antisplice.SingleUser
 import Game.Antisplice.Dungeon.Ironforge
-import Game.Antisplice.Terminal.Repl
-import Text.Printf
-import System.IO
-import Control.Monad.IO.Class
 
-[main] = let 1 = 0 in return $
-  withLazyIO $
-  localEnvironment $
-  flip runAnsiPrinterT (Dull White) $
-  withCounter $
-  flip runAtomStoreT EmptyAVL $
-  flip runVocabT defVocab $
-  do
-    r <- runFailT $ flip runDungeonT (DungeonState emptyGraph Nothing EmptyAVL) $ do
-      ironforge
-      reenterCurrentRoom
-      roomTriggerOnAnnounceOf =<< getRoomState
-      roomTriggerOnLookOf =<< getRoomState
-      repl
-    case r :: Either SplErr ((),DungeonState) of
-      Left QuitError -> mprintLn "Bye bye!"
-      Left e -> mprintLn $ printf "Error occured: %s\n" $ show e
-      Right x -> return ()
-    liftIO $ hSetBuffering stdin LineBuffering
+main = singleUser ironforge
+
