diff --git a/helm.cabal b/helm.cabal
--- a/helm.cabal
+++ b/helm.cabal
@@ -1,5 +1,5 @@
 name: helm
-version: 0.7.0
+version: 0.7.1
 synopsis: A functionally reactive game engine.
 description: A functionally reactive game engine, with headgear to protect you
              from the headache of game development provided.
@@ -48,7 +48,7 @@
     containers >= 0.5 && < 1,
     elerea >= 2.7 && < 3,
     filepath >= 1.3 && < 2,
-    sdl2 >= 1.1 && < 2,
+    sdl2 >= 1.1 && < 1.3,
     text >= 1.1.1.3,
     time >= 1.4 && < 1.5,
     random >= 1.0.1.1 && < 1.2,
@@ -77,4 +77,4 @@
     test-framework-quickcheck2 >= 0.3 && < 1,
     time >= 1.4 && < 1.5,
     elerea >= 2.7 && < 3,
-    sdl2 >= 1.1 && < 2
+    sdl2 >= 1.1 && < 1.3
diff --git a/src/FRP/Helm.hs b/src/FRP/Helm.hs
--- a/src/FRP/Helm.hs
+++ b/src/FRP/Helm.hs
@@ -251,7 +251,11 @@
             Cairo.setSourceSurface surface 0 0
             Cairo.translate (fromIntegral sx) (fromIntegral sy)
             Cairo.rectangle 0 0 (fromIntegral sw) (fromIntegral sh)
-            Cairo.fill
+            if stretch then
+                Cairo.paint
+            else
+                Cairo.fill
+                
             Cairo.restore
 
 renderElement (TextElement (Text { textColor = (Color r g b a), .. })) = do
diff --git a/src/FRP/Helm/Signal.hs b/src/FRP/Helm/Signal.hs
--- a/src/FRP/Helm/Signal.hs
+++ b/src/FRP/Helm/Signal.hs
@@ -105,6 +105,11 @@
     wrapper around the 'transfer' function that automatically binds the input
     signal out of the signal generator. This function is useful for making a render
     function that depends on some accumulated state.
+    
+    > playerPosition :: (Int, Int) -> SignalGen (Signal (Int, Int))
+    > playerPosition initial = foldp update initial arrows
+    >     where update (dx, dy) (x, y) = (x + dx, y + dy)
+
 -}
 foldp :: (a -> b -> b) -> b -> Signal a -> Signal b
 foldp f ini (Signal gen) =
diff --git a/src/FRP/Helm/Time.hs b/src/FRP/Helm/Time.hs
--- a/src/FRP/Helm/Time.hs
+++ b/src/FRP/Helm/Time.hs
@@ -102,9 +102,11 @@
 {-| Another utility signal that does all the magic for 'every'' by working on
     the Elerea SignalGen level -}
 every'' :: Time -> SignalGen p (Elerea.Signal (Time, Time))
-every'' t = getTime >>= transfer (0,0) update_
+every'' t = do
+    it <- execute getTime
+    effectful getTime >>= transfer (it,0) update_
   where
-    getTime = effectful $ liftM ((second *) . realToFrac) getPOSIXTime
+    getTime = liftM ((second *) . realToFrac) getPOSIXTime
     update_ _ new old = let delta = new - fst old
                         in if delta >= t then (new, delta) else old
 
