diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,16 @@
 haskell-pit
 ===========
+[![Build Status](https://travis-ci.org/chiro/haskell-pit.svg?branch=master)](https://travis-ci.org/chiro/haskell-pit)
 
-Account manager tool for haskell.
+## About
+This is an account management tool and library for haskell,
+ a haskell porting of [cho45/pit](https://github.com/cho45/pit)
 
-This is a haskell porting of [cho45/pit](https://github.com/cho45/pit)
+Documentation is avaliable in [hackage](http://hackage.haskell.org/package/pit).
+
+## Usage
+
+~~~~
+$ cabal update
+$ cabal install pit
+~~~~
diff --git a/pit.cabal b/pit.cabal
--- a/pit.cabal
+++ b/pit.cabal
@@ -1,5 +1,5 @@
 name:                pit
-version:             0.3.0
+version:             0.3.1
 synopsis:            Account management tool.
 license:             MIT
 license-file:        LICENSE
@@ -25,7 +25,7 @@
 library
   exposed-modules: Pit
 
-  build-depends:       base >= 4.7 && < 4.8
+  build-depends:       base >= 4.5 && < 4.8
                        , bytestring >= 0.10 && < 0.11
                        , directory >= 1.1 && < 1.3
                        , filepath >= 1.2 && < 1.4
@@ -43,7 +43,7 @@
   hs-source-dirs: src-exec
   default-language: Haskell2010
   main-is: Main.hs
-  build-depends: base >= 4.7 && < 4.8
+  build-depends: base >= 4.5 && < 4.8
                  , pit
                  , bytestring >= 0.10 && < 0.11
                  , optparse-applicative >= 0.10
diff --git a/src/Pit.hs b/src/Pit.hs
--- a/src/Pit.hs
+++ b/src/Pit.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 
 module Pit (
   get,
@@ -13,6 +14,9 @@
 
 import qualified Data.ByteString.Char8 as C
 import Data.HashMap.Strict (HashMap())
+#if !MIN_VERSION_base(4, 6, 0)
+import qualified Data.List as L
+#endif
 import qualified Data.HashMap.Strict as H
 import Data.Maybe (fromJust, fromMaybe, isJust)
 import Data.Text (Text())
@@ -64,7 +68,12 @@
 
 openEditorAndGetValue :: Maybe Y.Value -> IO (Maybe Y.Value)
 openEditorAndGetValue def = do
+#if MIN_VERSION_base(4, 6, 0)
   editor' <- lookupEnv "EDITOR"
+#else
+  env <- getEnvironment
+  let editor' = L.lookup "EDITOR" env
+#endif
   isTty <- hIsTerminalDevice stdout
   if isJust editor' && isTty
     then withSystemTempFile "new.yaml" $ \path h -> do
