diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,17 +7,12 @@
 
 ## Current state
 
-**Not production ready yet!**
-
-The library is going through a **total rewrite**.
-
-See [Issue #12](https://github.com/denibertovic/docker-hs/issues/12) for things
-that need to happen before a new release.
-
+**API is still no stable.**
+We're looking to stabilize the API after the next release (0.4.0.0)
 
 ## Contributing
 
-If you wish to contribute please see the Issue mentioned above or any issue tagged with "help wanted".
+If you wish to contribute please see any issue tagged with "help wanted".
 Make sure to submit your PR's against the `dev` branch.
 
 Please consider filling an Issue first and discuss design decisions and implementation details before
diff --git a/docker.cabal b/docker.cabal
--- a/docker.cabal
+++ b/docker.cabal
@@ -1,7 +1,7 @@
 name:                docker
-version:             0.3.0.0
+version:             0.3.0.1
 synopsis:            An API client for docker written in Haskell
-description:         See README.md
+description:         See API documentation below.
 homepage:            https://github.com/denibertovic/docker-hs
 license:             BSD3
 license-file:        LICENSE
@@ -25,7 +25,7 @@
                      , bytestring >= 0.10.0 && < 0.11.0
                      , containers >= 0.5.0 && < 0.6.0
                      , data-default-class >= 0.0.1 && < 0.2.0
-                     , http-client >= 0.4.0 && < 0.6.0
+                     , http-client >= 0.4.0 && < 0.5.0
                      , http-types >= 0.9 && < 0.10.0
                      , mtl >= 2.0.0 && < 3.0.0
                      , network >= 2.6.0
diff --git a/src/Docker/Client/Types.hs b/src/Docker/Client/Types.hs
--- a/src/Docker/Client/Types.hs
+++ b/src/Docker/Client/Types.hs
@@ -423,7 +423,7 @@
 data Network = Network NetworkMode NetworkOptions
     deriving (Eq, Show)
 
-instance FromJSON [Network] where
+instance {-# OVERLAPPING #-} FromJSON [Network] where
     parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
         where
             f accM k' v' = do
@@ -537,13 +537,13 @@
 
 -- If there are multiple lables with the same Name in the list
 -- then the last one wins.
-instance ToJSON [Label] where
+instance {-# OVERLAPPING #-} ToJSON [Label] where
     toJSON [] = emptyJsonObject
     toJSON (l:ls) = toJsonKeyVal (l:ls) key val
         where key (Label k _) = T.unpack k
               val (Label _ v) = v
 
-instance FromJSON [Label] where
+instance {-# OVERLAPPING #-} FromJSON [Label] where
     parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
         where f accM k v = do
                 acc <- accM
@@ -758,12 +758,12 @@
 -- @
 newtype Volume = Volume FilePath deriving (Eq, Show)
 
-instance ToJSON [Volume] where
+instance {-# OVERLAPPING #-} ToJSON [Volume] where
     toJSON [] = emptyJsonObject
     toJSON (v:vs) = toJsonKey (v:vs) getKey
         where getKey (Volume v) = v
 
-instance FromJSON [Volume] where
+instance {-# OVERLAPPING #-} FromJSON [Volume] where
     parseJSON (JSON.Object o) = return $ map (Volume . T.unpack) $ HM.keys o
     parseJSON (JSON.Null) = return []
     parseJSON _ = fail "Volume is not an object"
@@ -860,13 +860,13 @@
 
 data LogDriverOption = LogDriverOption Name Value deriving (Eq, Show)
 
-instance ToJSON [LogDriverOption] where
+instance {-# OVERLAPPING #-} ToJSON [LogDriverOption] where
     toJSON [] = emptyJsonObject
     toJSON (o:os) = toJsonKeyVal (o:os) key val
         where key (LogDriverOption n _) = T.unpack n
               val (LogDriverOption _ v) = v
 
-instance FromJSON [LogDriverOption] where
+instance {-# OVERLAPPING #-} FromJSON [LogDriverOption] where
     parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
         where f accM k v = do
                 acc <- accM
@@ -998,7 +998,7 @@
           oldeps = exposedPorts cc
 
 
-instance FromJSON [PortBinding] where
+instance {-# OVERLAPPING #-} FromJSON [PortBinding] where
     parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
         where
             f accM k v = case T.split (== '/') k of
@@ -1012,7 +1012,7 @@
     parseJSON (JSON.Null) = return []
     parseJSON _ = fail "PortBindings is not an object"
 
-instance ToJSON [PortBinding] where
+instance {-# OVERLAPPING #-} ToJSON [PortBinding] where
     toJSON [] = emptyJsonObject
     toJSON (p:ps) = toJsonKeyVal (p:ps) key val
         where key p =  T.unpack $ portAndType2Text (containerPort p) (portType p)
@@ -1323,7 +1323,7 @@
 -- @
 data ExposedPort = ExposedPort Port PortType deriving (Eq, Show)
 
-instance FromJSON [ExposedPort] where
+instance {-# OVERLAPPING #-} FromJSON [ExposedPort] where
     parseJSON (JSON.Object o) = HM.foldlWithKey' f (return []) o
         where
             f accM k _ = case T.split (== '/') k of
@@ -1336,7 +1336,7 @@
     parseJSON (JSON.Null) = return []
     parseJSON _ = fail "ExposedPorts is not an object"
 
-instance ToJSON [ExposedPort] where
+instance {-# OVERLAPPING #-} ToJSON [ExposedPort] where
     toJSON [] = emptyJsonObject
     toJSON (p:ps) = toJsonKey (p:ps) key
         where key (ExposedPort p t) = show p <> slash <> show t
