diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,7 @@
+## text-zipper-monad 0.2.0.0
+
+* Bump dependency on `text-zipper` to 0.5. killToBOL function is added.
+
+## text-zipper-monad 0.1.0.0
+
+* Initial version.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+# text-zipper-monad
+
+[![Hackage](https://img.shields.io/hackage/v/text-zipper-monad.svg?style=flat)](https://hackage.haskell.org/package/text-zipper-monad)
+[![Build Status](https://travis-ci.org/kseo/text-zipper-monad.svg?branch=master)](https://travis-ci.org/kseo/text-zipper-monad)
+
+text-zipper-monad provides a monadic interface to the text-zipper package.
+
+## Usage
+
+```haskell
+import Data.Text.Zipper
+import qualified Data.Text.Zipper.Edit as Z
+
+insertXAtTheBeginning = do
+  Z.moveCursor (0, 0)
+  Z.insertChar 'x'
+
+main = do
+  let tz = stringZipper ["abc", "def"] Nothing
+      newTz = Z.execEdit insertXAtTheBeginning tz
+  putStrLn (unlines (getText newTz))
+```
+
diff --git a/src/Data/Text/Zipper/Edit.hs b/src/Data/Text/Zipper/Edit.hs
--- a/src/Data/Text/Zipper/Edit.hs
+++ b/src/Data/Text/Zipper/Edit.hs
@@ -27,6 +27,7 @@
   , moveCursor
   , insertChar
   , breakLine
+  , killToBOL
   , killToEOL
   , gotoEOL
   , gotoBOL
@@ -53,7 +54,7 @@
 -- | Execute the edit session with the given zipper and return the
 -- modified zipper.
 execEditT :: (Monoid t, Monad m) => EditT t m a -> TextZipper t -> m (TextZipper t)
-execEditT e tz = execStateT (unEdit e) tz
+execEditT e = execStateT (unEdit e)
 
 -- | Execute the edit session with the given zipper and return the
 -- modified zipper.
@@ -68,11 +69,11 @@
 
 -- | Get the text contents of the zipper.
 getText :: (Monoid t, Monad m) => EditT t m [t]
-getText = get >>= return . TZ.getText
+getText = TZ.getText <$> get
 
 -- | The line of text on which the zipper's cursor currently resides.
 currentLine :: (Monoid t, Monad m) => EditT t m t
-currentLine = get >>= return . TZ.currentLine
+currentLine = TZ.currentLine <$> get
 
 -- | Get the cursor position of the zipper; returns @(row, col)@.
 -- @row@ ranges from @[0..num_rows-1]@ inclusive; @col@ ranges from
@@ -80,15 +81,15 @@
 -- line width indicate a cursor that is just past the end of a line of
 -- text.
 cursorPosition :: (Monoid t, Monad m) => EditT t m (Int, Int)
-cursorPosition = get >>= return . TZ.cursorPosition
+cursorPosition = TZ.cursorPosition <$> get
 
 -- | Return the lengths of the lines in the zipper.
 lineLengths :: (Monoid t, Monad m) => EditT t m [Int]
-lineLengths = get >>= return . TZ.lineLengths
+lineLengths = TZ.lineLengths <$> get
 
 -- | Get the line limit, if any, for a zipper.
 getLineLimit :: (Monoid t, Monad m) => EditT t m (Maybe Int)
-getLineLimit = get >>= return . TZ.getLineLimit
+getLineLimit = TZ.getLineLimit <$> get
 
 -- | Move the cursor to the specified row and column.  Invalid cursor
 -- positions will be ignored.  Valid cursor positions range as
@@ -110,6 +111,13 @@
 breakLine = do
   z <- get
   put (TZ.breakLine z)
+
+-- | Remove all text from the cursor position to the beginning of the
+-- current line.
+killToBOL :: (Monoid t, Monad m) => EditT t m ()
+killToBOL = do
+  z <- get
+  put (TZ.killToBOL z)
 
 -- | Remove all text from the cursor position to the end of the current
 -- line.  If the cursor is at the beginning of a line and the line is
diff --git a/text-zipper-monad.cabal b/text-zipper-monad.cabal
--- a/text-zipper-monad.cabal
+++ b/text-zipper-monad.cabal
@@ -1,5 +1,5 @@
 name:                text-zipper-monad
-version:             0.1.0.0
+version:             0.2.0.0
 synopsis:            Monadic interface to the text-zipper package
 description:         Please see README.md
 homepage:            https://github.com/kseo/text-zipper-monad#readme
@@ -10,7 +10,8 @@
 copyright:           BSD3
 category:            Text
 build-type:          Simple
--- extra-source-files:
+extra-source-files:  README.md
+                   , CHANGELOG.md
 cabal-version:       >=1.10
 
 library
@@ -18,7 +19,7 @@
   exposed-modules:     Data.Text.Zipper.Edit
   build-depends:       base >= 4.7 && < 5
                      , mtl >= 2.2 && < 2.3
-                     , text-zipper >= 0.4 && < 0.5
+                     , text-zipper >= 0.5 && < 0.6
   default-language:    Haskell2010
 
 test-suite text-zipper-monad-test
