diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,9 @@
 # multifile
 
-
-cat test.xml |  multifile 
+usage:
+```
+multifile <NOARGS> # extract the multifile
+multifile --create (or -c) [FILES]
+multifile --edit (or -e) [FILES] # open multiple files via editor
+multifile --help (or -h) # show this help message
+```
diff --git a/multifile.cabal b/multifile.cabal
--- a/multifile.cabal
+++ b/multifile.cabal
@@ -1,5 +1,5 @@
 name: multifile
-version: 0.1.0.6
+version: 0.1.0.7
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
@@ -22,7 +22,7 @@
 executable multifile
     main-is: Main.hs
     build-depends:
-        base >=4.9 && <4.10,
+        base <10000,
         HaXml <10000,
         directory <10000,
         pretty <10000,
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -28,6 +28,25 @@
 
 import Options.Applicative
 
+main = do 
+ args <- getArgs
+ case args of  
+  []              -> do x <- getContents       
+                        extractMultiFile x
+  ("--create":xs) -> create xs
+  ("-c":xs)       -> create xs
+  ("--edit":xs)   -> edit xs
+  ("-e":xs)       -> edit xs
+  ("--help":xs)   -> help
+  ("--h":xs)      -> help
+  _                ->  putStr "unknown usage"
+ where 
+  help = do putStrLn "usage:"
+            putStrLn "multifile <NOARGS> # extract the multifile"
+            putStrLn "multifile --create (or -c) [FILES]"
+            putStrLn "multifile --edit (or -e) [FILES] # open multiple files via editor"
+            putStrLn "multifile --help (or -h) # show this help message"
+
 isRegularPath :: FilePath -> Bool 
 isRegularPath f = f /= "." && f /= ".."
 
@@ -46,6 +65,7 @@
      return files'
    else if properFile then do
      content <- lift $ readFile filePath'
+     --lift $ putStr ("{"++content++"}")
      return [File (File_Attrs filePath') content ]
    else  
      throwE filePath'
@@ -53,7 +73,11 @@
 
 create' files =runExceptT $ do 
    files' <- create'' [] files
-   return $ (render $ htmlprint $ map myFun $ toContents $ Multifile files')
+   let a  = toContents (Multifile files')
+   let b = map myFun a
+   let c = htmlprint2 b
+   --lift $ print  c
+   return $ (render $ c)
 
 
 s = xmlEscapeContent  stdXmlEscaper 
@@ -91,19 +115,6 @@
 
 run x = print 2
 
-main = do 
-       args <- getArgs
-       case args of 
-         [] -> do
-           x <- getContents       
-           extractMultiFile x
-         x -> z x
- where 
- z ("--create":xs) = create xs
- z ("-c":xs) = create xs
- z ("--edit":xs) = edit xs
- z ("-e":xs) = edit xs
- z _             = putStr "unknown usage"
 
 edit xs = do
  dir <- getTemporaryDirectory
@@ -114,10 +125,15 @@
   (Right multifile) -> do
     writeFile filename multifile
     maybeEditor <- lookupEnv "EDITOR"
+    time1 <- getModificationTime filename
     let editor = fromMaybe "vim" maybeEditor
     system (editor++" "++filename)
-    x <- readFile filename
-    extractMultiFile x
+    time2 <- getModificationTime filename
+    if time2 > time1 then do
+      x <- readFile filename
+      extractMultiFile x
+    else
+      return ()
   (Left errorMsg) -> putStrLn ("file: "++errorMsg++" does not exist.")
  return ()
 
@@ -126,12 +142,13 @@
         either print processFiles p
 
 processFiles (Multifile xs) = mapM_ processFile xs
-processFile (File (File_Attrs path) content) = writeFile path content
+processFile (File (File_Attrs path) content) = do 
+   -- putStr ("("++content++")")
+   -- remove inserted newline Character
+   writeFile path (drop 1 content)
 
 
 
-{-
-
 htmlprint2 :: [Content i] -> Pretty.Doc
 htmlprint2 = Pretty.cat . map cprint . foldrefs
   where
@@ -143,8 +160,7 @@
   ref (RefChar s) = show s
 
   cprint (CElem e _)      = element e
-  cprint (CString ws s _) = Pretty.cat (map Pretty.text (fmt 60
-                                             ((if ws then id else id) s)))
+  cprint (CString ws s _) = Pretty.text "\n" Pretty.<> Pretty.text s
   cprint (CRef r _)       = Pretty.text ("&"++ref r++";")
   cprint (CMisc _ _)      = Pretty.empty
 
@@ -165,7 +181,7 @@
                                         Pretty.text (printableName n) Pretty.<>
                                         attrs as                      Pretty.<>
                                         Pretty.text ">")
-                                    , Pretty.nest 4 (htmlprint cs)
+                                    , Pretty.nest 0 (htmlprint2 cs)
                                     , ( Pretty.text "</"              Pretty.<>
                                         Pretty.text (printableName n) Pretty.<>
                                         Pretty.text ">" )
@@ -199,4 +215,3 @@
                                  | otherwise = select q (y:ls,ys)
 
 
--}
