diff --git a/Nemesis b/Nemesis
--- a/Nemesis
+++ b/Nemesis
@@ -1,3 +1,6 @@
+import MPS ((-))
+import Prelude hiding ((-))
+
 nemesis = do
   
   clean
@@ -10,14 +13,14 @@
   
 
   desc "prepare cabal dist"
-  task "dist" $ do
+  task "dist" - do
     sh "cabal clean"
     sh "cabal configure"
     sh "cabal sdist"
 
 
   desc "put all .hs files in manifest"
-  task "manifest" $ do
+  task "manifest" - do
     sh "find . | grep 'hs$' > manifest"
 
 
@@ -28,7 +31,7 @@
   task "runner" (sh "ghci -isrc src/System/Nemesis/Runner.hs")
 
   desc "show sloc"
-  task "stat" $ do
+  task "stat" - do
     sh "cloc -match-f=hs$ --quiet ."
 
   -- test for readme
@@ -40,25 +43,25 @@
   task "attack: pet-attack auto-attack" (putStrLn "attack macro done!")
 
   desc "Pet attack"
-  task "pet-attack: mark" $ do
+  task "pet-attack: mark" - do
     sh "echo 'pet attack'"
 
   desc "Hunter's mark"
-  task "mark" $ do
+  task "mark" - do
     sh "echo \"casting hunter's mark\""
   
   desc "Auto attack"
-  task "auto-attack" $ do
+  task "auto-attack" - do
     sh "echo 'auto shoot'"
     
     
     
-  namespace "eat" $ do
+  namespace "eat" - do
 
-    task "bread: salad" $ putStrLn "eating bread"
-    task "salad: /drink/coke" $ putStrLn "nice salad"
+    task "bread: salad" - putStrLn "eating bread"
+    task "salad: /drink/coke" - putStrLn "nice salad"
 
 
-  namespace "drink" $ do
+  namespace "drink" - do
 
-    task "coke" $ putStrLn "drinking coke"
+    task "coke" - putStrLn "drinking coke"
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,10 @@
+2009.8.16
+---------
+
+### Feature
+
+* no $ noise
+
 2009.8.4
 --------
 
diff --git a/nemesis.cabal b/nemesis.cabal
--- a/nemesis.cabal
+++ b/nemesis.cabal
@@ -1,10 +1,8 @@
 Name:                 nemesis
-Version:              2009.8.4
+Version:              2009.8.16
 Build-type:           Simple
-Synopsis:             a rake like task management tool
-Description:
-        
-    a rake like task management tool
+Synopsis:             a Rake like task management tool
+Description:          smart per project code snippets
 
 License:              BSD3
 License-file:         LICENSE
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -12,14 +12,14 @@
         , "manifest"
         ]
         
-      task "dist" $ do
+      task "dist" - do
         sh "cabal clean"
         sh "cabal configure"
         sh "cabal sdist"
 
       task "i" (sh "ghci -isrc src/System/Nemesis.hs")
 
-      task "manifest" $ do
+      task "manifest" - do
         sh "find . | grep 'hs$' > manifest"
 
 Tutorial
@@ -42,15 +42,15 @@
       task "attack: pet-attack auto-attack" (putStrLn "attack macro done!")
 
       desc "Pet attack"
-      task "pet-attack: mark" $ do
+      task "pet-attack: mark" - do
         sh "echo 'pet attack'"
 
       desc "Hunter's mark"
-      task "mark" $ do
+      task "mark" - do
         sh "echo \"casting hunter's mark\""
 
       desc "Auto attack"
-      task "auto-attack" $ do
+      task "auto-attack" - do
         sh "echo 'auto shoot'"
 
 ### Run
@@ -76,15 +76,15 @@
     
     nemesis = do
     
-      namespace "eat" $ do
+      namespace "eat" - do
 
-        task "bread: salad" $ putStrLn "eating bread"
-        task "salad: /drink/coke" $ putStrLn "nice salad"
+        task "bread: salad" - putStrLn "eating bread"
+        task "salad: /drink/coke" - putStrLn "nice salad"
 
 
-      namespace "drink" $ do
+      namespace "drink" - do
 
-        task "coke" $ putStrLn "drinking coke"
+        task "coke" - putStrLn "drinking coke"
 
 then
 
diff --git a/src/System/Nemesis.hs b/src/System/Nemesis.hs
--- a/src/System/Nemesis.hs
+++ b/src/System/Nemesis.hs
@@ -6,7 +6,7 @@
 import Data.Default
 import Data.List (sort)
 import Data.Map (Map, insert, empty, lookup, elems)
-import Prelude hiding ((.), (>), (^), lookup)
+import Prelude hiding ((.), (>), (^), lookup, (-))
 import System
 import System.Nemesis.Util
 
@@ -94,11 +94,11 @@
       Nothing -> bye
       Just x -> revenge x
       where
-        bye = error $ s ++  " does not exist!"
+        bye = error - s ++  " does not exist!"
 
     revenge :: Task -> IO ()
     revenge t = t.deps.mapM_ run' >> revenge_and_say
       where
         revenge_and_say = do
-          -- putStrLn $ "running: " ++ t.name
+          -- putStrLn - "running: " ++ t.name
           t.action
diff --git a/src/System/Nemesis/DSL.hs b/src/System/Nemesis/DSL.hs
--- a/src/System/Nemesis/DSL.hs
+++ b/src/System/Nemesis/DSL.hs
@@ -5,7 +5,7 @@
 import Control.Monad.State hiding (State, join)
 import Data.Default
 import Data.List (nub, sort)
-import Prelude hiding ((.), (>), (^), lookup)
+import Prelude hiding ((.), (>), (^), (-), lookup)
 import System
 import System.Directory
 import System.FilePath.Glob
@@ -53,17 +53,17 @@
   status <- system s
   case status of 
     ExitSuccess -> return ()
-    ExitFailure code -> error $ s ++ " failed with status code: " ++ show code
+    ExitFailure code -> error - s ++ " failed with status code: " ++ show code
 
 clean :: [String] -> Unit
 clean xs = do
   desc "Remove any temporary products."
-  task "clean" $ do
+  task "clean" - do
     paths <- globDir (xs.map compile) "." ^ fst ^ join' ^ nub ^ sort ^ reverse
     mapM_ rm_any paths
     where
       rm_any s = do
         file_exist <- doesFileExist s
-        when file_exist $ rm s
+        when file_exist - rm s
         dir_exist <- doesDirectoryExist s
-        when dir_exist $ rm_rf s
+        when dir_exist - rm_rf s
diff --git a/src/System/Nemesis/Runner.hs b/src/System/Nemesis/Runner.hs
--- a/src/System/Nemesis/Runner.hs
+++ b/src/System/Nemesis/Runner.hs
@@ -1,7 +1,7 @@
 import Control.Monad hiding (join)
 import Data.List (find)
 import Data.Time.Clock.POSIX
-import Prelude hiding ((.), (>), (^))
+import Prelude hiding ((.), (>), (^), (-))
 import System
 import System.Cmd
 import System.Directory
@@ -23,7 +23,7 @@
   when recompile compile
   
   args <- getArgs
-  system $ "./.nemesis " ++ args.join " "
+  system - "./.nemesis " ++ args.join " "
   return ()
   
   where
@@ -35,7 +35,7 @@
         else do
           bin_stamp <- bin.file_mtime
           src_stamp <- get_src_name >>= file_mtime
-          return $ bin_stamp < src_stamp
+          return - bin_stamp < src_stamp
     
     file_mtime path = 
       getModificationTime path ^ seconds ^ posixSecondsToUTCTime
@@ -45,7 +45,7 @@
 get_src_name :: IO String
 get_src_name = do
   dir <- ls "."
-  return $ dir.filter (belongs_to possible_source) .get_name
+  return - dir.filter (belongs_to possible_source) .get_name
   where
     possible_source = ["Nemesis", "nemesis", "Nemesis.hs", "nemesis.hs"]
     get_name []     = error "Nemesis does not exist!"
@@ -65,14 +65,14 @@
 
   if ((patch_end ++ patch_start).null && src_name.ends_with ".hs")
     then do
-      sh $ "ghc --make -O1 " ++ src_name ++ " -o " ++ bin
+      sh - "ghc --make -O1 " ++ src_name ++ " -o " ++ bin
       rm src_o
       rm src_hi
     else do
       if t.null
-        then output_tmp $ patch_start ++ h ++ patch_end
-        else output_tmp $ h ++ patch_start ++ "\n" ++ t ++ patch_end
-      sh $ "ghc --make -O1 " ++ tmp_name ++ " -o " ++ bin
+        then output_tmp - patch_start ++ h ++ patch_end
+        else output_tmp - h ++ patch_start ++ "\n" ++ t ++ patch_end
+      sh - "ghc --make -O1 " ++ tmp_name ++ " -o " ++ bin
       rm tmp_name
       rm tmp_o
       rm tmp_hi
