diff --git a/JsonGrammar.cabal b/JsonGrammar.cabal
--- a/JsonGrammar.cabal
+++ b/JsonGrammar.cabal
@@ -1,5 +1,5 @@
 Name:           JsonGrammar
-Version:        0.3.4
+Version:        0.3.5
 Synopsis:       Combinators for bidirectional JSON parsing
 Description:   	Combinators for bidirectional JSON parsing
 
@@ -12,7 +12,7 @@
 Bug-reports:    https://github.com/MedeaMelana/JsonGrammar/issues
 
 
-Cabal-Version:  >= 1.6
+Cabal-Version:  >= 1.8
 License:        BSD3
 License-file:   LICENSE
 Category:       JSON, Language
@@ -26,7 +26,7 @@
                     Data.Iso.Common,
                     Language.JsonGrammar
   Build-Depends:    base >= 3.0 && < 5,
-                    aeson >= 0.6 && < 0.7,
+                    aeson >= 0.6 && < 0.8,
                     semigroups >= 0.5 && < 0.9,
                     -- constraints copied from aeson-0.6.1.0:
                     attoparsec >= 0.8.6.1,
@@ -42,3 +42,15 @@
 Source-Repository head
   Type:         git
   Location:     https://github.com/MedeaMelana/JsonGrammar
+
+
+Test-Suite tests
+  Type: exitcode-stdio-1.0
+  Hs-Source-Dirs: tests
+  Main-Is: Tests.hs
+  Build-Depends:    JsonGrammar,
+                    base >= 3.0 && < 5,
+                    aeson >= 0.6 && < 0.8,
+                    test-framework,
+                    test-framework-hunit,
+                    HUnit
diff --git a/Language/JsonGrammar.hs b/Language/JsonGrammar.hs
--- a/Language/JsonGrammar.hs
+++ b/Language/JsonGrammar.hs
@@ -19,8 +19,6 @@
 import Data.Aeson hiding (object)
 import Data.Aeson.Types (parseMaybe)
 import Data.Attoparsec.Number
-import Data.ByteString (ByteString)
-import qualified Data.ByteString.Lazy as Lazy
 import Data.Hashable (Hashable)
 import Data.Int
 import Data.IntSet (IntSet)
@@ -182,8 +180,6 @@
 instance Json Word32          where grammar = liftAeson
 instance Json Word64          where grammar = liftAeson
 instance Json ()              where grammar = liftAeson
-instance Json ByteString      where grammar = liftAeson
-instance Json Lazy.ByteString where grammar = liftAeson
 instance Json Number          where grammar = liftAeson
 instance Json Text            where grammar = liftAeson
 instance Json Lazy.Text       where grammar = liftAeson
diff --git a/tests/Tests.hs b/tests/Tests.hs
new file mode 100644
--- /dev/null
+++ b/tests/Tests.hs
@@ -0,0 +1,49 @@
+{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE NoMonoPatBinds #-}
+
+import Types
+
+import Data.Iso
+import Language.JsonGrammar
+
+import Prelude hiding (id, (.), head, either)
+import Control.Category
+
+import Data.Aeson (Object)
+import Test.Framework (Test, defaultMain)
+import Test.Framework.Providers.HUnit (testCase)
+import Test.HUnit (assertEqual)
+
+
+person         = $(deriveIsos ''Person)
+(male, female) = $(deriveIsos ''Gender)
+coords         = $(deriveIsos ''Coords)
+
+
+instance Json Person where
+  grammar = person . object
+    ( prop "naam"
+    . prop "geslacht"
+    . prop "leeftijd"
+    . coordsProps
+    )
+
+instance Json Gender where
+  grammar = male   . litJson "man"
+         <> female . litJson "vrouw"
+
+coordsProps :: Iso (Object :- t) (Object :- Coords :- t)
+coordsProps = duck coords . prop "lat" . prop "lng"
+
+anna :: Person
+anna = Person "Anna" Female 36 (Coords 53.0163038 5.1993053)
+
+main :: IO ()
+main = defaultMain [personTest]
+
+personTest :: Test
+personTest = testCase "Person" (assertEqual "" anna anna')
+  where
+    Just anna' = fromJson annaJson
+    Just annaJson = toJson anna
