diff --git a/Main.hs b/Main.hs
--- a/Main.hs
+++ b/Main.hs
@@ -3,17 +3,22 @@
 module Main where
 
 
-import           Data.Conduit                         (($$))
-import           Data.Conduit.Binary                  (sourceHandle)
-import           Data.Text                            (pack)
-import           Network.AWS
-import           Network.AWS.Data.Text                (fromText)
-import           Network.AWS.S3.CreateMultipartUpload
-import           Network.AWS.S3.StreamingUpload
-import           System.Environment
-import           System.IO                            (BufferMode (BlockBuffering),
-                                                       hSetBuffering, stdin)
+import Data.Conduit        (($$))
+import Data.Conduit.Binary (sourceHandle)
+import Data.Text           (pack)
 
+import Network.AWS
+import Network.AWS.Data.Text                (fromText)
+import Network.AWS.S3.CreateMultipartUpload
+import Network.AWS.S3.StreamingUpload
+
+import System.Environment
+import System.IO          (BufferMode(BlockBuffering), hSetBuffering, stdin)
+
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative (pure, (<$>), (<*>))
+#endif
+
 main :: IO ()
 main = do
   args <- getArgs
@@ -24,9 +29,9 @@
                  <*> fromText (pack bucket)
                  <*> fromText (pack key)
       of
-        Right (creds,reg,buck,ky) -> do
+        Right (creds,_reg,buck,ky) -> do
 #if !MIN_VERSION_amazonka(1,4,4)
-          env <- newEnv reg creds
+          env <- newEnv _reg creds
 #else
           env <- newEnv creds
 #endif
@@ -43,9 +48,9 @@
                 <*> (fromText (pack region) :: Either String Region)
                 <*> fromText (pack bucket)
       of
-        Right (creds,reg,buck) -> do
+        Right (creds,_reg,buck) -> do
 #if !MIN_VERSION_amazonka(1,4,4)
-          env <- newEnv reg creds
+          env <- newEnv _reg creds
 #else
           env <- newEnv creds
 #endif
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,2 +1,3 @@
-# amazonka-s3-streaming
-Provides a conduit based interface to uploading data to S3 using the Multipart API
+# amazonka-s3-streaming [![Build Status](https://travis-ci.org/axman6/amazonka-s3-streaming.svg?branch=master)](https://travis-ci.org/axman6/amazonka-s3-streaming)
+
+Provides a conduit based streaming interface and a concurrent interface to uploading data to S3 using the Multipart API.
diff --git a/amazonka-s3-streaming.cabal b/amazonka-s3-streaming.cabal
--- a/amazonka-s3-streaming.cabal
+++ b/amazonka-s3-streaming.cabal
@@ -1,5 +1,5 @@
 name: amazonka-s3-streaming
-version: 0.1.0.3
+version: 0.1.0.4
 cabal-version: >=1.10
 build-type: Simple
 license: BSD3
@@ -52,7 +52,7 @@
         amazonka >=1.4.3 && <1.5,
         amazonka-core >=1.4.3 && <1.5,
         amazonka-s3 >=1.4.3 && <1.5,
-        amazonka-s3-streaming >=0.1.0.3 && <0.2,
+        amazonka-s3-streaming >=0.1.0.4 && <0.2,
         conduit-extra >=1.1.15 && <1.2,
         conduit >=1.2.8 && <1.3,
         bytestring >=0.10.8.1 && <0.11,
diff --git a/src/Network/AWS/S3/StreamingUpload.hs b/src/Network/AWS/S3/StreamingUpload.hs
--- a/src/Network/AWS/S3/StreamingUpload.hs
+++ b/src/Network/AWS/S3/StreamingUpload.hs
@@ -18,52 +18,59 @@
     , chunkSize
 ) where
 
-import           Network.AWS                            (Error, HasEnv (..),
-                                                         LogLevel (..),
-                                                         MonadAWS, getFileSize,
-                                                         hashedBody, send,
-                                                         toBody)
+import Network.AWS
+       ( HasEnv(..)
+       , LogLevel(..)
+       , MonadAWS
+       , getFileSize
+       , hashedBody
+       , send
+       , toBody
+       )
 
-import           Control.Monad.Trans.AWS                (AWSConstraint)
-import           Network.AWS.Data.Crypto                (Digest, SHA256,
-                                                         hashFinalize, hashInit,
-                                                         hashUpdate)
+import Control.Monad.Trans.AWS (AWSConstraint)
+import Network.AWS.Data.Crypto
+       (Digest, SHA256, hashFinalize, hashInit, hashUpdate)
 
-import           Network.AWS.S3.AbortMultipartUpload
-import           Network.AWS.S3.CompleteMultipartUpload
-import           Network.AWS.S3.CreateMultipartUpload
-import           Network.AWS.S3.ListMultipartUploads
-import           Network.AWS.S3.Types                   (BucketName, cmuParts, completedMultipartUpload,
-                                                         completedPart, muKey,
-                                                         muUploadId)
-import           Network.AWS.S3.UploadPart
+import Network.AWS.S3.AbortMultipartUpload
+import Network.AWS.S3.CompleteMultipartUpload
+import Network.AWS.S3.CreateMultipartUpload
+import Network.AWS.S3.ListMultipartUploads
+import Network.AWS.S3.Types
+       ( BucketName
+       , cmuParts
+       , completedMultipartUpload
+       , completedPart
+       , muKey
+       , muUploadId
+       )
+import Network.AWS.S3.UploadPart
 
-import           Control.Applicative
-import           Control.Category                       ((>>>))
-import           Control.Monad                          (forM_, when, (>=>))
-import           Control.Monad.IO.Class                 (MonadIO, liftIO)
-import           Control.Monad.Morph                    (lift)
-import           Control.Monad.Trans.Resource           (MonadBaseControl,
-                                                         MonadResource, throwM)
+import Control.Applicative
+import Control.Category             ((>>>))
+import Control.Monad                (forM_, when, (>=>))
+import Control.Monad.IO.Class       (MonadIO, liftIO)
+import Control.Monad.Morph          (lift)
+import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource, throwM)
 
-import           Data.Conduit                           (Sink, await)
-import           Data.Conduit.List                      (sourceList)
+import Data.Conduit      (Sink, await)
+import Data.Conduit.List (sourceList)
 
-import           Data.ByteString                        (ByteString)
-import qualified Data.ByteString                        as BS
-import           Data.ByteString.Builder                (stringUtf8)
-import           System.IO.MMap                         (mmapFileByteString)
+import           Data.ByteString         (ByteString)
+import qualified Data.ByteString         as BS
+import           Data.ByteString.Builder (stringUtf8)
+import           System.IO.MMap          (mmapFileByteString)
 
-import qualified Data.DList                             as D
-import           Data.List                              (unfoldr)
-import           Data.List.NonEmpty                     (nonEmpty)
+import qualified Data.DList         as D
+import           Data.List          (unfoldr)
+import           Data.List.NonEmpty (nonEmpty)
 
-import           Control.Exception.Lens                 (catching, handling)
-import           Control.Lens
+import Control.Exception.Lens (catching, handling)
+import Control.Lens
 
-import           Text.Printf                            (printf)
+import Text.Printf (printf)
 
-import           Control.Concurrent.Async.Lifted        (forConcurrently)
+import Control.Concurrent.Async.Lifted (forConcurrently)
 
 -- | Minimum size of data which will be sent in a single part, currently 6MB
 chunkSize :: Int
@@ -82,7 +89,7 @@
 be charged for storage of the parts until it is completed or aborted.
 See the AWS documentation for more details.
 
-May throw 'Error'
+May throw 'Network.AWS.Error'
 -}
 streamUpload :: (MonadResource m, MonadAWS m, AWSConstraint r m)
              => CreateMultipartUpload
@@ -168,7 +175,7 @@
 into memory as a strict 'ByteString'. The usual caveats about mmaped files apply:
 if the file is modified during this operation, the data may become corrupt.
 
-May throw `Error`, or `IOError`.
+May throw `Network.AWS.Error`, or `IOError`.
 -}
 concurrentUpload :: (MonadAWS m, MonadBaseControl IO m)
                  => UploadLocation -> CreateMultipartUpload -> m CompleteMultipartUploadResponse
@@ -213,7 +220,7 @@
   forM_ (rs ^. lmursUploads) $ \mu -> do
     let mki = (,) <$> mu ^. muKey <*> mu ^. muUploadId
     case mki of
-      Nothing -> pure ()
+      Nothing        -> pure ()
       Just (key,uid) -> send (abortMultipartUpload bucket key uid) >> pure ()
 
 
