diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@
     jsonTokenAt $ J.nextSibling $ J.firstChild $ J.nextSibling $ J.firstChild $ J.firstChild  cursor
 
 ## References
-* [Original Pull Request](https://github.com/snoyberg/conduit/pull/244)
+* [Succinct Data Structures talk by Edward Kmett](https://www.youtube.com/watch?v=uA0Z7_4J7u8)
 * [Typed Tagless Final Interpreters](http://okmij.org/ftp/tagless-final/course/lecture.pdf)
 * [Conduit Overview](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/conduit-overview)
 
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -1,4 +1,23 @@
+{-# LANGUAGE BangPatterns        #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
 module Main where
 
+import qualified Data.ByteString                                  as BS
+import qualified Data.Vector.Storable                             as DVS
+import           Data.Word
+import           GHC.Conc
+import           HaskellWorks.Data.Bits.BitShown
+import           HaskellWorks.Data.FromByteString
+import           HaskellWorks.Data.Json.Succinct.Cursor
+import           HaskellWorks.Data.Succinct.BalancedParens.Simple
+import           HaskellWorks.Diagnostics.Time
+
 main :: IO ()
-main = print "Hello world"
+main = do
+  bs <- BS.readFile "/Users/jky/Downloads/78mbs.json"
+  !cursor <- measure (fromByteString bs :: JsonCursor BS.ByteString (BitShown (DVS.Vector Word64)) (SimpleBalancedParens (DVS.Vector Word64)))
+  print (jsonTokenAt (firstChild cursor))
+  threadDelay 100000000
+  print (jsonTokenAt cursor)
+  return ()
diff --git a/hw-succinct.cabal b/hw-succinct.cabal
--- a/hw-succinct.cabal
+++ b/hw-succinct.cabal
@@ -1,5 +1,5 @@
 name:                   hw-succinct
-version:                0.0.0.1
+version:                0.0.0.2
 synopsis:               Conduits for tokenizing streams.
 description:            Please see README.md
 homepage:               http://github.com/haskell-works/hw-succinct#readme
@@ -12,16 +12,20 @@
 build-type:             Simple
 extra-source-files:     README.md
 cabal-version:          >= 1.10
+data-dir:               test-data
 
 executable hw-succinct-example
   hs-source-dirs:       app
   main-is:              Main.hs
-  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
-  build-depends:        base
-                      , attoparsec                      >= 0.10
-                      , conduit                         >= 1.1  && < 1.3
-                      , hw-succinct
-                      , resourcet                       >= 1.1
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N -O2 -Wall -msse4.2
+  build-depends:        base            >= 4       && < 5   ,
+                        bytestring                          ,
+                        conduit                             ,
+                        criterion       >= 1.1.0.0 && < 1.2 ,
+                        hw-succinct                         ,
+                        mmap                                ,
+                        resourcet                           ,
+                        vector          >= 0.6     && < 0.12
   default-language:     Haskell2010
 
 library
@@ -88,13 +92,13 @@
                       , HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select1
                       , HaskellWorks.Data.Succinct.RankSelect.Binary.Poppy512
                       , HaskellWorks.Data.Succinct.RankSelect.Internal
-                      , HaskellWorks.Data.Time
                       , HaskellWorks.Data.Vector.BoxedVectorLike
                       , HaskellWorks.Data.Vector.Storable.ByteString
                       , HaskellWorks.Data.Vector.StorableVectorLike
                       , HaskellWorks.Data.Vector.VectorLike
-                      , HaskellWorks.Function
                       , HaskellWorks.Data.Word
+                      , HaskellWorks.Function
+                      , HaskellWorks.Diagnostics.Time
   build-depends:        base                            >= 4.7  && < 5
                       , array
                       , attoparsec                      >= 0.10
diff --git a/src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs b/src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs
--- a/src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs
+++ b/src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs
@@ -20,4 +20,4 @@
   fromBlankedJson :: BlankedJson -> a
 
 instance FromByteString BlankedJson where
-  fromByteString bs = BlankedJson (runListConduit blankJson (chunkedBy 4096 bs))
+  fromByteString bs = BlankedJson (runListConduit blankJson (chunkedBy 4064 bs))
diff --git a/src/HaskellWorks/Data/Time.hs b/src/HaskellWorks/Data/Time.hs
deleted file mode 100644
--- a/src/HaskellWorks/Data/Time.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE BangPatterns #-}
-
-module HaskellWorks.Data.Time where
-
-import           System.CPUTime
-
-measure :: a -> IO a
-measure a = do
-  start <- getCPUTime
-  let !b = a
-  end   <- getCPUTime
-  print (end - start)
-  return b
diff --git a/src/HaskellWorks/Diagnostics/Time.hs b/src/HaskellWorks/Diagnostics/Time.hs
new file mode 100644
--- /dev/null
+++ b/src/HaskellWorks/Diagnostics/Time.hs
@@ -0,0 +1,13 @@
+{-# LANGUAGE BangPatterns #-}
+
+module HaskellWorks.Diagnostics.Time where
+
+import           System.CPUTime
+
+measure :: a -> IO a
+measure a = do
+  start <- getCPUTime
+  let !b = a
+  end   <- getCPUTime
+  print (end - start)
+  return b
