diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.0.5
+
+* more function
+
 0.0.4
 
 * lots more functions
diff --git a/list-zipper.cabal b/list-zipper.cabal
--- a/list-zipper.cabal
+++ b/list-zipper.cabal
@@ -1,5 +1,5 @@
 name:               list-zipper
-version:            0.0.4
+version:            0.0.5
 license:            BSD3
 license-file:       LICENCE
 author:             Queensland Functional Programming Lab <oᴉ˙ldɟb@llǝʞsɐɥ>
diff --git a/src/Data/ListZipper.hs b/src/Data/ListZipper.hs
--- a/src/Data/ListZipper.hs
+++ b/src/Data/ListZipper.hs
@@ -32,7 +32,10 @@
 , ListZipperOp'
 , HasListZipperOp(..)
 , AsListZipperOp(..)
+, liftListZipperOp
 , getFocus
+, getLeft
+, getRight
 , getRightz
 , getLeftz
 , getList
@@ -521,33 +524,59 @@
        k z <!> (z & f () ^. _Wrapped)
      )
 
+liftListZipperOp ::
+  Maybe b
+  -> ListZipperOp a b
+liftListZipperOp m =
+  ListZipperOp (\z ->
+    (\b -> (z, b)) <$> m
+  )
+
 getFocus ::
   ListZipperOp a a
 getFocus =
-  ListZipperOp (\z -> Just (z, z ^. focus))
+  reader (^. focus)
 
+getLeft ::
+  ListZipperOp a a
+getLeft =
+  do  z <- get
+      case z of
+        ListZipper (l:_) _ _ ->
+          pure l
+        ListZipper [] _ _ ->
+          mempty
+
+getRight ::
+  ListZipperOp a a
+getRight =
+  do  z <- get
+      case z of
+        ListZipper _ _ (r:_) ->
+          pure r
+        ListZipper _ _ [] ->
+          mempty
+
 getRightz ::
   ListZipperOp a [a]
 getRightz =
-  ListZipperOp (\z -> Just (z, z ^. rightz))
+  reader (^. rightz)
 
 getLeftz ::
   ListZipperOp a [a]
 getLeftz =
-  ListZipperOp (\z -> Just (z, z ^. leftz))
+  reader (^. leftz)
 
 getList ::
   ListZipperOp a [a]
 getList =
-  ListZipperOp (\z -> Just (z, list z))
+  reader list
 
 mkListZipperOp :: 
   (ListZipper a -> Maybe b)
   -> ListZipperOp a b
 mkListZipperOp f = 
-  ListZipperOp (\z ->
-    (\a -> (z, a)) <$> f z
-  )
+  get >>= liftListZipperOp . f
 
 (*>>) :: 
   (ListZipper a -> Maybe b)
@@ -677,12 +706,8 @@
   ListZipperOp a x
   -> ListZipper a
   -> [a]
-execOpList' o z =
-  case execOpList o z of
-    Nothing ->
-      []
-    Just x ->
-      x
+execOpList' o =
+  fromMaybe [] . execOpList o
 
 ($$>) ::
   ListZipperOp a x
