diff --git a/src/Yi/Config/Users/Reiner.hs b/src/Yi/Config/Users/Reiner.hs
new file mode 100644
--- /dev/null
+++ b/src/Yi/Config/Users/Reiner.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE NoMonomorphismRestriction, NamedFieldPuns, DoAndIfThenElse #-}
+module Yi.Config.Users.Reiner (setup, main) where
+
+import Yi.Config.Simple
+import Yi.Prelude hiding ((%=))
+import qualified Prelude
+
+import qualified Yi.Mode.Haskell as Haskell
+import Yi.Mode.Latex(latexMode3)
+import Yi.Command(buildRun)
+
+import System.Directory
+import System.FilePath
+
+-- | The main entry point, when used as a standalone yi.hs file.
+main = configMain defaultEmacsConfig setup
+
+-- | Registers my settings in the 'ConfigM' monad.
+setup :: ConfigM ()
+setup = do
+  setFrontendPreferences ["pango", "vte", "vty"]
+  fontSize %= Just 9
+
+  globalBindKeys globalBindings
+  evaluator %= publishedActionsEvaluator
+  publishAction "createDirectory" yiCreateDirectory
+
+  addMode Haskell.fastMode
+  modeBindKeys Haskell.fastMode (ctrlCh 'c' ?>> ctrlCh 's' ?>>! insertHaskSection)
+
+  -- LaTeX stuff
+  addMode latexMode3
+  publishAction "compileLatex" compileLatex
+  modeBindKeys latexMode3 (ctrlCh 'c' ?>> ctrlCh 'c' ?>>! compileLatex)
+
+--------------------------------------------------------------------------------
+--                            Actions and bindings                            --
+--------------------------------------------------------------------------------
+yiCreateDirectory :: YiM ()
+yiCreateDirectory = do
+    BufferFileInfo{bufInfoFileName} <- withEditor $ withBuffer0 bufInfoB
+    let dir = takeDirectory bufInfoFileName
+    exists <- io $ doesDirectoryExist dir
+    if not exists 
+    then do
+            io $ createDirectoryIfMissing True dir
+            withEditor $ printMsg $  "Created directory '" ++ dir ++ "'."
+    else withEditor $ printMsg $ "Directory already exists!"
+
+sectionSize = 80
+
+-- inserts the "Actions and bindings" header above
+insertHaskSection :: String -> BufferM ()
+insertHaskSection s
+   | lenS >= sectionSize - 6 = do
+           insertDashes lenS
+           newlineB
+           insertN s
+           newlineB
+           insertDashes lenS
+   | otherwise = do
+           insertDashes sectionSize
+           newlineB
+           insertN "--"
+           let nSpaces = sectionSize - 4 - lenS
+               nSpacesL = nSpaces `div` 2
+               nSpacesR = nSpaces - nSpacesL
+           insertN (replicate nSpacesL ' ')
+           insertN s
+           insertN (replicate nSpacesR ' ')
+           insertN "--"
+           newlineB
+           insertDashes sectionSize
+  where lenS = Prelude.length s
+        insertDashes n = insertN (replicate n '-')
+    
+
+globalBindings = choice
+   [ 
+     ctrlCh '\t' ?>>! nextWinE,
+     shift (ctrlCh '\t') ?>>! prevWinE,
+     metaCh 'r' ?>>! reload
+   ]
+
+compileLatex = do
+    mfilename <- withEditor $ withBuffer0 (gets file)
+    case mfilename of
+        Just filename -> buildRun "pdflatex" ["--file-line-error", "--interaction=nonstopmode", filename] (const $ return ())
+        Nothing -> return ()
diff --git a/yi-contrib.cabal b/yi-contrib.cabal
--- a/yi-contrib.cabal
+++ b/yi-contrib.cabal
@@ -1,5 +1,5 @@
 name:           yi-contrib
-version:        0.6.3.0
+version:        0.6.4.0
 category:       Development, Editor
 synopsis:       Add-ons to Yi, the Haskell-Scriptable Editor
 description:
@@ -25,6 +25,7 @@
     Yi.Config.Users.Gwern
     Yi.Config.Users.Jeff
     Yi.Config.Users.JP
+    Yi.Config.Users.Reiner
     Yi.Style.Misc
     Yi.Templates
 
@@ -32,5 +33,7 @@
     base >=4.0 && <5,
     containers,
     data-accessor >= 0.2.1.4 && < 0.3,
+    directory < 1.2,
+    filepath < 1.3,
     split ==0.1.*,
-    yi ==0.6.3.0
+    yi ==0.6.4.0
