diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -167,7 +167,7 @@
 
 ### Examples
 
-There is a dog complimenter available to test out at [my
+There is a Shakespearean insult generator available to test out at [my
 site](http://blog.vmchale.com/madlang).
 
 ## Tooling
diff --git a/demo/example.mad b/demo/example.mad
--- a/demo/example.mad
+++ b/demo/example.mad
@@ -39,4 +39,4 @@
     6.0 subject predicate
 :return
     1.0 final
-    0.02 final.oulipo # removes all mentions of the letter 'e' a small amount of the time
+    0.02 final.oulipo # removes all mentions of the letter 'e' occasionally
diff --git a/madlang.cabal b/madlang.cabal
--- a/madlang.cabal
+++ b/madlang.cabal
@@ -1,5 +1,5 @@
 name:                madlang
-version:             3.0.0.4
+version:             3.1.0.0
 synopsis:            Randomized templating language DSL
 description:         Madlang is a text templating language written in Haskell,
                      meant to explore computational creativity and generative
@@ -70,6 +70,7 @@
                      , random-shuffle
                      , mtl
                      , ansi-wl-pprint
+                     , lens
                      , containers
                      , titlecase
                      , th-lift-instances
diff --git a/src/Text/Madlibs/Ana/ParseUtils.hs b/src/Text/Madlibs/Ana/ParseUtils.hs
--- a/src/Text/Madlibs/Ana/ParseUtils.hs
+++ b/src/Text/Madlibs/Ana/ParseUtils.hs
@@ -27,8 +27,6 @@
 import           Text.Madlibs.Internal.Types
 import           Text.Madlibs.Internal.Utils
 
---TODO consider moving Ana.ParseUtils to Cata.Sorting
-
 -- | A map with all the modifiers for Madlang
 modifierList :: M.Map String (T.Text -> T.Text)
 modifierList = M.fromList [("to_upper", T.map toUpper)
diff --git a/src/Text/Madlibs/Exec/Helpers.hs b/src/Text/Madlibs/Exec/Helpers.hs
--- a/src/Text/Madlibs/Exec/Helpers.hs
+++ b/src/Text/Madlibs/Exec/Helpers.hs
@@ -7,6 +7,7 @@
                                          extractFilesFromArchive, toArchive)
 import           Codec.Compression.GZip (decompress)
 import           Network.HTTP.Client    hiding (decompress)
+import           System.Directory       (removeFile)
 import           System.Environment     (getEnv)
 import           System.Info            (os)
 
@@ -25,6 +26,12 @@
     let archive = toArchive byteStringResponse
     let options = OptDestination packageDir
     extractFilesFromArchive [options] archive
+
+    putStrLn "cleaning junk..."
+    removeFile (packageDir ++ "/TODO.md")
+    removeFile (packageDir ++ "/vim-screenshot.png")
+    removeFile (packageDir ++ "/README.md")
+    removeFile (packageDir ++ "/LICENSE")
 
 -- TODO set remote package url flexibly
 fetchPackages :: IO ()
diff --git a/src/Text/Madlibs/Exec/Main.hs b/src/Text/Madlibs/Exec/Main.hs
--- a/src/Text/Madlibs/Exec/Main.hs
+++ b/src/Text/Madlibs/Exec/Main.hs
@@ -32,8 +32,8 @@
 orders = Program
     <$> (hsubparser
         (command "run" (info temp (progDesc "Generate text from a .mad file"))
-        <> command "debug" (info debug (progDesc "Debug a template"))
-        <> command "lint" (info lint (progDesc "Lint a file"))
+        <> command "tree" (info debug (progDesc "Display a tree with all possible paths"))
+        <> command "check" (info lint (progDesc "Check a file"))
         <> command "install" (info (pure Install) (progDesc "Install/update prebundled libraries."))
         <> command "vim" (info (pure VimInstall) (progDesc "Install vim plugin."))
         ))
@@ -110,5 +110,5 @@
                 (Debug _) -> putStr . (either show displayTree) =<< makeTree ins "" filepath
                 (Lint _ _) -> do
                     parsed <- parseFile ins "" filepath
-                    putStrLn $ either parseErrorPretty (const "No syntax errors found.") parsed
+                    putStrLn $ either (parseErrorPretty) (const "No syntax errors found.") parsed
                 _ -> pure ()
