diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@
 
 All "file parts" start with a '$'. The '$' can be escaped by preceding it with a '\'
 
-There are the following options for "file parts"
+There are the following options for "file parts" 
 
 
 * $path
diff --git a/file-command-qq.cabal b/file-command-qq.cabal
--- a/file-command-qq.cabal
+++ b/file-command-qq.cabal
@@ -2,9 +2,52 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                file-command-qq
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            Quasiquoter for system commands involving filepaths
--- description:         
+description:
+ file-command-qq is a simple quasiquoter for running system commands that take a filepath as an argument.
+ .
+ For instance
+ . 
+ >>> :set -XOverloadedStrings
+ >>> import FileCommand
+ >>> import Filesystem.Path
+ >>> [s|echo $filename|] "/home/test/thing.txt"
+ .
+ .
+ will return
+ .
+ @
+   thing.txt
+   ExitSuccess
+ @
+ .
+ You can think of @[s|echo $filename|]@ essentially converts into
+ .
+ .
+ @
+   \\path -> system $ "echo" ++ encodeString (filename path)
+ @
+ .
+ Here is another example
+ .
+ >>> [s|gcc $path -o $directory$basename.o|] "/home/test/thing.c"
+ .
+ All "file parts" start with a \'$\'. The \'$\' can be escaped by preceding it with a \'\\\'
+ .
+ There are the following options for "file parts" 
+ .
+ .
+ * $path
+ * $root
+ * $directory
+ * $parent
+ * $filename
+ * $dirname
+ * $basename
+ * $ext
+ .
+ Which correspond to the respective functions in <https://hackage.haskell.org/package/system-filepath-0.4.6/docs/Filesystem-Path.html#g:1>
 homepage:            https://github.com/jfischoff/file-command-qq
 license:             MIT
 license-file:        LICENSE
diff --git a/src/FileCommand.hs b/src/FileCommand.hs
--- a/src/FileCommand.hs
+++ b/src/FileCommand.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE TemplateHaskell #-} 
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE LambdaCase #-}
-module FileCommand where
+module FileCommand (s) where
 import Text.Parsec hiding ((<|>), many)
 import Text.Parsec.Char
 import Text.Parsec.Combinator
@@ -99,6 +99,41 @@
                       $ extension $(varE filePathName) 
                    |]
 
+
+-- | A simple quasiquoter for executing system commands on a filepath
+--  for example
+--  
+--  >>> [s|echo $filename|] "/home/test/thing.txt"
+--  
+--  will return
+--  
+--  @
+--   thing.txt
+--   ExitSuccess
+--  @
+--  
+--  You can think of @[s|echo $filename|]@ essentially converts into
+--  
+--  @
+--    \\path -> system $ "echo" ++ encodeString (filename path)
+--  @
+--  
+--  Here is another example
+--  
+--  >>> [s|gcc $path -o $directory$basename.o|] "/home/test/thing.c"
+--  
+--  All "file parts" start with a \'$\'. The \'$\' can be escaped by preceding it with a \'\\\'
+--  
+--  There are the following options for "file parts" 
+--  
+--  * $path
+--  * $root
+--  * $directory
+--  * $parent
+--  * $filename
+--  * $dirname
+--  * $basename
+--  * $ext
 s :: QuasiQuoter 
 s = QuasiQuoter 
      { quoteExp  = either (error . show) eval . parse parser "" 
