diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,5 +2,9 @@
 
 ## Unreleased changes
 
+## 0.10
+- bytesParser now accepts Text not [Char] datatypes
+- Moved usage of parsec3-numbers to parsec-numbers
+
 ## 0.9
 - Initial Version
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,9 @@
 # Byte Count Reader
+-------------------
+
+[![Build Status](https://travis-ci.org/danielrolls/byte-count-reader.svg?branch=master)](https://travis-ci.org/danielrolls/byte-count-reader)
+[![Hackage](https://img.shields.io/hackage/v/byte-count-reader.svg)][hackage]
+
 This library is for reading strings describing a number of bytes like 2Kb and 0.5 MiB.
 
 The units KB, MB, GB and TB imply base 10 (e.g. 2KB = 2 x 1000).
@@ -10,3 +15,5 @@
 - 3.5 MB
 - 10 &nbsp;&nbsp; gib
 - 100tb
+
+[hackage]: http://hackage.haskell.org/package/github "Hackage"
diff --git a/byte-count-reader.cabal b/byte-count-reader.cabal
--- a/byte-count-reader.cabal
+++ b/byte-count-reader.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.2
 name: byte-count-reader
-version: 0.9.0.0
+version: 0.10.0.0
 license: GPL-3.0-only
 license-file: LICENSE
 copyright: 2020 Daniel Rolls
@@ -34,7 +34,7 @@
         base >=4.7 && <5,
         extra >=1.6.21 && <1.7,
         parsec >=3.1.14.0 && <3.2,
-        parsec3-numbers >=0.1.0 && <0.2,
+        parsec-numbers >=0.1.0 && <0.2,
         text >=1.2.4.0 && <1.3
 
 test-suite haskelltest-test
@@ -52,5 +52,5 @@
         extra >=1.6.21 && <1.7,
         hspec >=2.7.1 && <2.8,
         parsec >=3.1.14.0 && <3.2,
-        parsec3-numbers >=0.1.0 && <0.2,
+        parsec-numbers >=0.1.0 && <0.2,
         text >=1.2.4.0 && <1.3
diff --git a/src/Data/ByteCountReader.hs b/src/Data/ByteCountReader.hs
--- a/src/Data/ByteCountReader.hs
+++ b/src/Data/ByteCountReader.hs
@@ -11,16 +11,17 @@
 module Data.ByteCountReader (sizeInBytes) where
 
 import Data.Char (toLower)
-import Text.ParserCombinators.Parsec (GenParser, many, many1, oneOf, char, parse, anyChar)
 import Data.Either.Extra (eitherToMaybe)
-import Text.Parsec.Number (floating3)
+import Data.Text (Text(), unpack)
 import GHC.Float.RealFracMethods (roundDoubleInteger)
+import Text.ParserCombinators.Parsec.Number (floating3)
+import Text.ParserCombinators.Parsec (GenParser, many, many1, oneOf, char, parse, anyChar)
 
 -- |Read strings describing a number of bytes like 2KB and 0.5 MiB.
 -- The units KB, MB, GB and TB are assumed to be base 10 (e.g. 2KB = 2 x 1000).
 -- The units KiB, MiB, GiB and TiB are assumed to be base 2 (e.g. 2KiB = 2 * 1024).
-sizeInBytes :: String -> Maybe Integer
-sizeInBytes inStr = do (number, units) <- eitherToMaybe $ parse bytesParser "<>" inStr
+sizeInBytes :: Text -> Maybe Integer
+sizeInBytes inStr = do (number, units) <- eitherToMaybe $ parse bytesParser "<>" (unpack inStr)
                        roundDoubleInteger . (number *) . fromInteger <$> toMultiplier units
 
 bytesParser :: GenParser Char st (Double, String)
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -1,6 +1,7 @@
 import Test.Hspec
 
 import Data.ByteCountReader
+import Data.Text (unpack)
 
 main :: IO ()
 main = hspec $ 
@@ -17,7 +18,7 @@
           , ("1      tIb", 1099511627776)
           ]
         where testHappyPathScenarios = foldl (>>) (return ()) . map parseTest
-              parseTest (string, expectedValue) = it ("Parse " <> string) $
+              parseTest (string, expectedValue) = it ("Parse " <> unpack string) $
                                                      sizeInBytes string `shouldBe` Just expectedValue
 
 
