diff --git a/s3-signer.cabal b/s3-signer.cabal
--- a/s3-signer.cabal
+++ b/s3-signer.cabal
@@ -1,5 +1,5 @@
 name:                s3-signer
-version:             0.4.0.0
+version:             0.5.0.0
 homepage:            https://github.com/dmjio/s3-signer
 bug-reports:         https://github.com/dmjio/s3-signer/issues
 synopsis:            Pre-signed Amazon S3 URLs
@@ -33,25 +33,6 @@
 extra-source-files:  README.md
 tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
 
-library internal
-  default-language:  Haskell2010
-  build-depends: base == 4.*
-               , base64-bytestring
-               , bytestring
-               , byteable
-               , utf8-string
-               , case-insensitive >= 1.2
-               , blaze-builder >= 0.4
-               , http-types
-               , cryptohash
-               , time
-
-  hs-source-dirs: src
-  exposed-modules: Network.S3
-                 , Network.S3.Sign
-                 , Network.S3.URL
-                 , Network.S3.Types
-
 library
   build-depends:       base == 4.*
                      , base64-bytestring
@@ -75,14 +56,24 @@
 
 test-suite test-simple
   default-language:  Haskell2010
+  hs-source-dirs: src, test
   type: exitcode-stdio-1.0
-  main-is: test/Test.hs
-  build-depends: internal
-               , base == 4.*
-               , bytestring
-               , blaze-builder >= 0.4
-               , time
-
+  main-is: Test.hs
+  other-modules:       Network.S3
+                     , Network.S3.Sign
+                     , Network.S3.Time
+                     , Network.S3.URL
+                     , Network.S3.Types
+  build-depends:       base == 4.*
+                     , base64-bytestring
+                     , bytestring
+                     , byteable
+                     , utf8-string
+                     , case-insensitive >= 1.2
+                     , blaze-builder >= 0.4
+                     , http-types
+                     , cryptohash
+                     , time
 
 source-repository head
   type:     git
