diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,11 @@
+0.0.2.0
+
+* Upgrade responseStatus and responseHeaders from Getter to Lens' on
+  HasResponse, using mapResponseStatus / mapResponseHeaders for the setter
+* Add getResponseStatus and getResponseHeaders getters to GetResponse
+* Add applicationResponse :: Setter' Application Response, using
+  modifyResponse under the hood
+
 0.0.1.0
 
 * Initial release
diff --git a/src/Network/Wai/Optics/Response.hs b/src/Network/Wai/Optics/Response.hs
--- a/src/Network/Wai/Optics/Response.hs
+++ b/src/Network/Wai/Optics/Response.hs
@@ -30,18 +30,17 @@
   ReviewResponseRaw (..),
   AsResponseRaw (..),
 
-  -- * Getters
-  responseStatus,
-  responseHeaders,
+  -- * Setters
+  applicationResponse,
 ) where
 
-import Control.Category (id)
-import Control.Lens (Getter, Lens', Prism', Review, lens, prism', review, to, unto, view)
+import Control.Category (id, (.))
+import Control.Lens (Getter, Lens', Prism', Review, Setter', lens, prism', review, sets, to, unto, view)
 import Data.ByteString (ByteString)
 import Data.ByteString.Builder (Builder)
 import Data.Maybe (Maybe (..))
 import Network.HTTP.Types (ResponseHeaders, Status)
-import Network.Wai (Response, StreamingBody)
+import Network.Wai (Application, Response, StreamingBody)
 import qualified Network.Wai as Wai
 import Network.Wai.Internal (
   FilePart,
@@ -53,10 +52,22 @@
 class GetResponse s where
   -- | A 'Getter' to obtain a 'Response'.
   getResponse :: Getter s Response
+  -- | A 'Getter' on the 'Status'.
+  getResponseStatus :: Getter s Status
+  getResponseStatus = getResponse . getResponseStatus
+  {-# INLINE getResponseStatus #-}
+  -- | A 'Getter' on the 'ResponseHeaders'.
+  getResponseHeaders :: Getter s ResponseHeaders
+  getResponseHeaders = getResponse . getResponseHeaders
+  {-# INLINE getResponseHeaders #-}
 
 instance GetResponse Response where
   getResponse = id
   {-# INLINE getResponse #-}
+  getResponseStatus = to Wai.responseStatus
+  {-# INLINE getResponseStatus #-}
+  getResponseHeaders = to Wai.responseHeaders
+  {-# INLINE getResponseHeaders #-}
 
 -- | Type class for values with a lens into a 'Response'.
 class (GetResponse s) => HasResponse s where
@@ -70,9 +81,23 @@
   response = lens (view getResponse) (flip setResponse)
   {-# INLINE response #-}
 
+  -- | A 'Lens'' on the 'Status'.
+  responseStatus :: Lens' s Status
+  responseStatus = response . responseStatus
+  {-# INLINE responseStatus #-}
+
+  -- | A 'Lens'' on the 'ResponseHeaders'.
+  responseHeaders :: Lens' s ResponseHeaders
+  responseHeaders = response . responseHeaders
+  {-# INLINE responseHeaders #-}
+
 instance HasResponse Response where
   setResponse = const
   {-# INLINE setResponse #-}
+  responseStatus = lens Wai.responseStatus (\r s -> Wai.mapResponseStatus (const s) r)
+  {-# INLINE responseStatus #-}
+  responseHeaders = lens Wai.responseHeaders (\r h -> Wai.mapResponseHeaders (const h) r)
+  {-# INLINE responseHeaders #-}
 
 -- | Type class for values that can be constructed from a 'Response'.
 class ReviewResponse t where
@@ -99,15 +124,13 @@
   matchResponse = Just
   {-# INLINE matchResponse #-}
 
--- | A 'Getter' on the 'Status' of a 'Response'.
-responseStatus :: Getter Response Status
-responseStatus = to Wai.responseStatus
-{-# INLINE responseStatus #-}
-
--- | A 'Getter' on the 'ResponseHeaders' of a 'Response'.
-responseHeaders :: Getter Response ResponseHeaders
-responseHeaders = to Wai.responseHeaders
-{-# INLINE responseHeaders #-}
+-- | A 'Setter'' on the 'Response' within an 'Application'.
+--
+-- Uses 'Wai.modifyResponse' under the hood. Allows modifying the response
+-- that an 'Application' produces without manually threading the CPS callback.
+applicationResponse :: Setter' Application Response
+applicationResponse = sets Wai.modifyResponse
+{-# INLINE applicationResponse #-}
 
 -- ** ResponseFile
 
diff --git a/waiz.cabal b/waiz.cabal
--- a/waiz.cabal
+++ b/waiz.cabal
@@ -1,5 +1,5 @@
 name:               waiz
-version:            0.0.1.0
+version:            0.0.2.0
 license:            BSD3
 license-file:       LICENCE
 author:             Tony Morris <tmorris@tmorris.net>
