diff --git a/DOH.cabal b/DOH.cabal
--- a/DOH.cabal
+++ b/DOH.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                DOH
-version:             0.1.2.0
+version:             0.1.3.0
 synopsis:            Complete API bindings for DigitalOcean API V2
 description:         Complete API bindings for DigitalOcean API V2
                      .
@@ -43,14 +43,14 @@
                        Network.DigitalOcean.Services.Volume
   -- other-modules:       
   -- other-extensions:    
-  build-depends:       base >=4.9 && <4.10,
+  build-depends:       base >=4.9 && <=5.0,
                        mtl,
                        text,
                        http-client,
                        http-types,
                        http-client-tls,
                        bytestring,
-                       uri,
+                       network-uri,
                        aeson,
                        aeson-casing,
                        time,
@@ -65,14 +65,14 @@
   default-language:    Haskell2010
   type:           exitcode-stdio-1.0
   main-is:        Spec.hs
-  build-depends:  base >=4.9 && <4.10,
+  build-depends:  base >= 4.9 && <=5.0,
                   mtl,
                   text,
                   http-client,
                   http-types,
                   http-client-tls,
                   bytestring,
-                  uri,
+                  network-uri,
                   aeson,
                   time,
                   aeson-casing,
diff --git a/src/Network/DigitalOcean/Http.hs b/src/Network/DigitalOcean/Http.hs
--- a/src/Network/DigitalOcean/Http.hs
+++ b/src/Network/DigitalOcean/Http.hs
@@ -23,7 +23,7 @@
 import           Control.Monad.Except
 import           Data.Maybe
 import           Network.HTTP.Types.Status  (statusCode)
-import           Text.URI
+import           Network.URI
 -----------------------------------------------------------------
 import           Network.DigitalOcean.Types
 import           Network.DigitalOcean.Utils.Pagination
diff --git a/src/Network/DigitalOcean/Services/Image.hs b/src/Network/DigitalOcean/Services/Image.hs
--- a/src/Network/DigitalOcean/Services/Image.hs
+++ b/src/Network/DigitalOcean/Services/Image.hs
@@ -77,6 +77,18 @@
 instance Payload ImageAction
 
 data PublicImage =
+    Custom String
+  | Predefined PredefinedImage
+
+instance Show PublicImage where
+  show (Custom value) = show value
+  show (Predefined image) = show image
+
+instance ToJSON PublicImage where
+  toJSON (Custom value) = toJSON value
+  toJSON (Predefined image) = toJSON image
+
+data PredefinedImage =
     CoreosBeta
   | Centos65x32
   | Centos65x64
@@ -146,10 +158,10 @@
   | Gitlab1604
   | Redmine
 
-instance ToJSON PublicImage where
+instance ToJSON PredefinedImage where
   toJSON = toJSON . show
 
-instance Show PublicImage where
+instance Show PredefinedImage where
   show CoreosBeta        = "coreos-beta"
   show Centos65x32       = "centos-6-5-x32"
   show Centos65x64       = "centos-6-5-x64"
diff --git a/src/Network/DigitalOcean/Types.hs b/src/Network/DigitalOcean/Types.hs
--- a/src/Network/DigitalOcean/Types.hs
+++ b/src/Network/DigitalOcean/Types.hs
@@ -46,9 +46,9 @@
   [] -> ""
   ls -> "?" <> (intercalate "&" . map (\(k, v) -> k <> "=" <> v) $ ls)
 
-class (FromJSON a, Show a, FromJSON (PaginationState a)) => Paginatable a where
+class (FromJSON a, Show a, FromJSON (PaginationState a)) => Paginatable a
 
-data Paginatable a => PaginationState a = PaginationState
+data PaginationState a = PaginationState
   { curr     :: [a]
   , page     :: Int
   , nextUrl  :: Maybe String
