diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
 [![Build Status](https://travis-ci.org/rkaippully/starter.svg?branch=master)](https://travis-ci.org/rkaippully/starter)
+[![Release](https://img.shields.io/github/release/rkaippully/starter.svg)](https://github.com/rkaippully/starter/releases)
+[![Hackage](https://img.shields.io/hackage/v/starter.svg)](https://hackage.haskell.org/package/starter)
+[![Stackage LTS](http://stackage.org/package/starter/badge/lts)](http://stackage.org/lts/package/starter)
 
 # What is starter?
 Server side software development usually needs frequent restarts. You would launch a server, make
@@ -6,6 +9,8 @@
 tedious cycle.
 
 See documentation of module `Starter` for details.
+
+An example web server using starter can be found in `example` directory.
 
 # License
 Starter is distributed under Mozilla Public License 2.0. See the file LICENSE for details.
diff --git a/src/Starter.hs b/src/Starter.hs
--- a/src/Starter.hs
+++ b/src/Starter.hs
@@ -18,12 +18,14 @@
   GHCi session that automatically reloads your program whenever your source code changes.
 
   1. In some module of your program (e.g. @MyModule@), define a variable @mySettings@ of type 'StarterSettings'.
+  2. Define a function @runDevMode = runStarter mySettings@.
   2. Create a @.ghci@ file in your project with the following contents:
 
-     @
-     :load MyModule Starter
-     :def! starter runStarter mySettings
-     @
+       @
+       :load MyModule Starter
+       :def! starter runDevMode
+       @
+
   3. Now you can start your program with the @:starter@ command. This will run your program under a monitor.
      When the source code changes, the monitor will interrupt the program with an exception, reload
      the modules with a @:reload@ command and restart the program.
@@ -43,11 +45,14 @@
 
 
 data StarterSettings = StarterSettings {
-  -- | The program to be run by starter
+  -- | The program to be run by starter. The command line arguments passed to the GHCi command will
+  -- be passed to this function.
   starterProgram             :: String -> IO ()
   -- | The GHCi command name
   , starterCommand           :: String
-  -- | The expression that should be bound to the GHCi command. For e.g., @runStarter mySettings@.
+  -- | The expression that should be bound to the GHCi command. For e.g., if you created a @.ghci@
+  -- file with the command @:def! starter runDevMode@, then this should be set to
+  -- @runDevMode@.
   , starterCommandExpression :: String
   -- | Predicate to determine if the program should be restarted on change of a file.
   , starterIsRestartable     :: FilePath -> Bool
diff --git a/starter.cabal b/starter.cabal
--- a/starter.cabal
+++ b/starter.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 9d1b69ecd738c0ae71b70a456823778de98e27a64210b15daccb52dbad66e36b
+-- hash: b7fb498a9c1fa7ab48aee3373fe7a6bc6cdbf186f980445114c87b589cc5c3dc
 
 name:           starter
-version:        0.1.0
+version:        0.2.0
 synopsis:       Develop applications without restarts
 description:    Please see the README on Github at <https://github.com/rkaippully/starter#readme>
 category:       Development
@@ -30,6 +30,7 @@
 library
   hs-source-dirs:
       src
+  ghc-options: -O2 -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
   build-depends:
       base >=4.7 && <5
     , fsnotify >=0.2.1 && <0.3
