diff --git a/aws-simple.cabal b/aws-simple.cabal
--- a/aws-simple.cabal
+++ b/aws-simple.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           aws-simple
-version:        0.3.0.0
+version:        0.4.0.0
 synopsis:       Dead simple bindings to commonly used AWS Services
 description:    Simple bindings to commonly used AWS services
 category:       Web
@@ -26,18 +26,18 @@
       src
   build-depends:
       base >= 4.7 && < 5
-    , text
-    , bytestring
-    , mtl
-    , resourcet
-    , lens
-    , conduit
+    , text >= 1.2
+    , bytestring >= 0.10
+    , mtl >= 2.2
+    , resourcet >= 1.0
+    , lens >= 3.0
+    , conduit >= 1.2
     , amazonka >= 1.4.5
-    , amazonka-core
-    , amazonka-s3
-    , amazonka-sqs
-    , blaze-builder
-    , unordered-containers
+    , amazonka-core >= 1.4.5
+    , amazonka-s3 >= 1.4.5
+    , amazonka-sqs >= 1.4.5
+    , unordered-containers >= 0.2
+    , timespan >= 0.3
   exposed-modules:
       Network.AWS.Simple
   other-modules:
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name:                aws-simple
-version:             0.3.0.0
+version:             0.4.0.0
 synopsis:            Dead simple bindings to commonly used AWS Services
 description:         Simple bindings to commonly used AWS services
 homepage:            https://github.com/agrafix/aws-simple#readme
@@ -15,18 +15,18 @@
 
 dependencies:
   - base >= 4.7 && < 5
-  - text
-  - bytestring
-  - mtl
-  - resourcet
-  - lens
-  - conduit
+  - text >= 1.2
+  - bytestring >= 0.10
+  - mtl >= 2.2
+  - resourcet >= 1.0
+  - lens >= 3.0
+  - conduit >= 1.2
   - amazonka >= 1.4.5
-  - amazonka-core
-  - amazonka-s3
-  - amazonka-sqs
-  - blaze-builder
-  - unordered-containers
+  - amazonka-core >= 1.4.5
+  - amazonka-s3 >= 1.4.5
+  - amazonka-sqs >= 1.4.5
+  - unordered-containers >= 0.2
+  - timespan >= 0.3
 
 library:
   source-dirs: src
diff --git a/src/Network/AWS/Simple.hs b/src/Network/AWS/Simple.hs
--- a/src/Network/AWS/Simple.hs
+++ b/src/Network/AWS/Simple.hs
@@ -12,7 +12,7 @@
        , sqsGetQueue, AWSQueue
        , sqsSendMessage
        , sqsGetMessage, GetMessageCfg(..), SqsMessage(..), MessageHandle
-       , sqsAckMessage
+       , sqsAckMessage, sqsChangeMessageTimeout
        )
 where
 
@@ -25,8 +25,10 @@
 import Data.Int
 import Data.Maybe
 import Data.Monoid
-import qualified Blaze.ByteString.Builder as BSB
+import Data.Time.TimeSpan
 import qualified Data.ByteString as BS
+import qualified Data.ByteString.Builder as BSB
+import qualified Data.ByteString.Lazy as BSL
 import qualified Data.Text as T
 import qualified Network.AWS as AWS
 import qualified Network.AWS.Data.Body as AWS
@@ -50,7 +52,7 @@
 
 mkLogFun :: LogFun -> AWS.Logger
 mkLogFun f ll logBuilder=
-    f ll (BSB.toByteString logBuilder)
+    f ll (BSL.toStrict $ BSB.toLazyByteString logBuilder)
 
 runAWS :: AWSHandle -> AWS.AWS a -> IO a
 runAWS aws action =
@@ -132,9 +134,13 @@
 
 data GetMessageCfg
    = GetMessageCfg
-   { gmc_ackTimeout :: !Int
-   , gmc_messages :: !Int -- ^ maximum is 10
-   , gmc_waitTime :: !Int
+   { gmc_ackTimeout :: !TimeSpan
+     -- ^ how long should the message be hidden from other consumers until 'sqsAckMessage' is called
+     -- maximum: 12 hours
+   , gmc_messages :: !Int
+     -- ^ how many messages should be pulled at once. Between 1 and 10
+   , gmc_waitTime :: !TimeSpan
+     -- ^ how long should one polling request wait for the next message? Between 0 and 20 seconds.
    }
 
 data SqsMessage
@@ -159,8 +165,8 @@
     do ms <-
            AWS.send $
            SQS.receiveMessage q
-           & SQS.rmWaitTimeSeconds ?~ gmc_waitTime gmc
-           & SQS.rmVisibilityTimeout ?~ gmc_ackTimeout gmc
+           & SQS.rmWaitTimeSeconds ?~ round (toSeconds (gmc_waitTime gmc))
+           & SQS.rmVisibilityTimeout ?~ round (toSeconds (gmc_ackTimeout gmc))
            & SQS.rmMaxNumberOfMessages ?~ gmc_messages gmc
        return (mapMaybe wrapMessage $ ms ^. SQS.rmrsMessages)
 
@@ -168,3 +174,8 @@
 sqsAckMessage hdl (AWSQueue q) (MessageHandle rh) =
     runAWS hdl $
     void $ AWS.send (SQS.deleteMessage q rh)
+
+sqsChangeMessageTimeout :: AWSHandle -> AWSQueue -> MessageHandle -> TimeSpan -> IO ()
+sqsChangeMessageTimeout hdl (AWSQueue q) (MessageHandle rh) t =
+    runAWS hdl $
+    void $ AWS.send $ SQS.changeMessageVisibility q rh (round $ toSeconds t)
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -9,3 +9,4 @@
   - amazonka-1.4.5
   - amazonka-s3-1.4.5
   - amazonka-sqs-1.4.5
+  - timespan-0.3.0.0
