         unless @getActiveScrollAnimator()
           @startScrollAnimatorTracking()
 
-        # log scrollValue
-
-        @getScrollAnimator().addToDesiredScrollPosition bound -windowSize, -scrollValue, windowSize
+        scrollValue = bound -windowSize, -scrollValue, windowSize
+
+        position = @getScrollAnimator().desiredScrollPosition + scrollValue
+        @getScrollAnimator().desiredScrollPosition = bound(
+          @getScrollAnimator().minScrollPosition
+          position
+          @getScrollAnimator().maxScrollPosition
+        )
 
         timeout 100
         .then =>

    # shouldSnapToPage: ->
    #   abs(@closestPageLocation - @scrollPosition) < @scrollElement.snapToPageDistance

  @setter
    mode: (v) -> @_mode = v
    referenceFrame: (v) ->
      # log "scrollAnimator referenceFrame: #{inspect v}"

        @mode = "spring"
        @_desiredScrollPosition = @boundLocation @_desiredScrollPosition
        # @snapToPage() if @shouldSnapToPage

  addToDesiredScrollPosition: (delta) ->
    @_desiredScrollPosition += delta
