diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# uap-haskell is the ua-parser library for Haskell
+[![Build Status](https://travis-ci.org/ua-parser/uap-haskell.svg?branch=master)](https://travis-ci.org/ua-parser/uap-haskell)
+[![Hackage](https://img.shields.io/hackage/v/ua-parser.svg?style=flat)](https://hackage.haskell.org/package/ua-parser)
+
+## Hackage
+
+http://hackage.haskell.org/package/ua-parser
+
+## Github
+
+https://github.com/ua-parser/uap-haskell
+
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -6,10 +6,9 @@
 
 
 -------------------------------------------------------------------------------
-import           Control.Applicative
+import           Control.Applicative     as A
 import           Control.DeepSeq
 import           Criterion.Main
-import           Data.DeriveTH
 -------------------------------------------------------------------------------
 import           Web.UAParser
 import           Web.UAParser.SuiteUtils
@@ -18,7 +17,7 @@
 
 main :: IO ()
 main = do
-  uas <- take 100 <$> loadTests "test_resources/firefox_user_agent_strings.yaml"
+  uas <- take 100 A.<$> loadTests "test_resources/firefox_user_agent_strings.yaml"
   oses <- take 100 <$> loadTests "test_resources/additional_os_tests.yaml"
   devs <- take 100 <$> loadTests "tests/test_device.yaml"
   defaultMain [ bench "Parsing 100 UAs" $ nf (map (parseUA . uatcString)) uas
@@ -27,4 +26,6 @@
               ]
 
 
-$(derives [makeNFData] [''UAResult, ''OSResult, ''DevResult])
+instance NFData UAResult
+instance NFData OSResult
+instance NFData DevResult
diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,2 @@
+0.7.2
+* Allow for aeson 1.0
diff --git a/src/Web/UAParser/SuiteUtils.hs b/src/Web/UAParser/SuiteUtils.hs
--- a/src/Web/UAParser/SuiteUtils.hs
+++ b/src/Web/UAParser/SuiteUtils.hs
@@ -9,11 +9,13 @@
 
 -------------------------------------------------------------------------------
 import           Control.Applicative
-import           Data.Aeson
+import           Control.Monad       (join)
+import           Data.Aeson          hiding ((.:?))
+import qualified Data.Aeson          as A
 import           Data.ByteString     (ByteString)
 import           Data.Text           (Text)
 import qualified Data.Text.Encoding  as T
-import           Data.Yaml
+import           Data.Yaml           hiding ((.:?))
 import           System.FilePath
 -------------------------------------------------------------------------------
 
@@ -90,3 +92,10 @@
                         <*> o .: "family"
                         <*> nonBlank (o .:? "brand")
                         <*> nonBlank (o .:? "model")
+
+
+-------------------------------------------------------------------------------
+-- | Backport a more lenient version of .:? from newer versions of
+-- aeson. It accepts an explicit null as well as an omitted field.
+(.:?) :: (FromJSON a) => Object -> Text -> Parser (Maybe a)
+o .:? k = join <$> (o A..:? k)
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -4,7 +4,7 @@
 
 
 -------------------------------------------------------------------------------
-import           Control.Applicative
+import           Control.Applicative     as A
 import qualified Data.ByteString.Char8   as B
 import           Data.Monoid
 import qualified Data.Text               as T
@@ -18,12 +18,11 @@
 
 main :: IO ()
 main = do
-  uaCases <- mconcat <$> mapM loadTests ["test_resources/firefox_user_agent_strings.yaml"
-                                        ,"test_resources/pgts_browser_list.yaml"
-                                        ,"tests/test_ua.yaml"]
+  uaCases <- mconcat A.<$> mapM loadTests ["test_resources/firefox_user_agent_strings.yaml"
+                                          ,"test_resources/pgts_browser_list.yaml"
+                                          ,"tests/test_ua.yaml"]
   osCases <- mconcat <$> mapM loadTests [ "test_resources/additional_os_tests.yaml"
                                         , "tests/test_os.yaml" ]
-  --TODO: stop limiting once tests pass
   devCases <- loadTests "tests/test_device.yaml"
   defaultMain $ testGroup "ua-parser" [ uaTests uaCases
                                       , osTests osCases
diff --git a/ua-parser.cabal b/ua-parser.cabal
--- a/ua-parser.cabal
+++ b/ua-parser.cabal
@@ -1,6 +1,6 @@
 name:                ua-parser
 description:         Please refer to the git/github README on the project for example usage.
-version:             0.7.1
+version:             0.7.2
 synopsis:            A library for parsing User-Agent strings, official Haskell port of ua-parser
 license:             BSD3
 license-file:        LICENSE
@@ -14,6 +14,8 @@
                    , GHC == 7.10.2
 
 extra-source-files: src/Web/UAParser/SuiteUtils.hs
+                    README.md
+                    changelog.md
 
 data-files: ./deps/uap-core/*.yaml
             ./deps/uap-core/test_resources/*.yaml
@@ -40,7 +42,7 @@
     , text
     , pcre-light
     , yaml             >= 0.7 && < 0.9
-    , aeson            >= 0.7 && < 0.12
+    , aeson            >= 0.7 && < 1.1
     , data-default
     , file-embed       < 0.1
 
@@ -63,7 +65,6 @@
       base
     , bytestring
     , text
-    , derive
     , HUnit
     , pcre-light
     , yaml >= 0.7
@@ -85,7 +86,6 @@
                      , ua-parser
                      , criterion
                      , deepseq
-                     , derive
                      , bytestring
                      , text
                      , yaml
