   isWithinBounds: ->
     return (@isWithinHorizontalBounds() and @isWithinVerticalBounds())
 
-  isWithinHorizontalBounds: ->
-    aboveLower = @position.relative.x >= 0
-    belowUpper = @position.relative.x <= (@reference.getWidth() - 1)
+  isWithinHorizontalBounds: (x = @position.relative.x) ->
+    aboveLower = x >= 0
+    belowUpper = x <= (@reference.getWidth() - 1)
     return (aboveLower and belowUpper)
 
-  isWithinVerticalBounds: ->
-    aboveLower = @position.relative.y >= 0
-    belowUpper = @position.relative.y <= (@reference.getHeight() - 1)
+  isWithinVerticalBounds: (y = @position.relative.y) ->
+    aboveLower = y >= 0
+    belowUpper = y <= (@reference.getHeight() - 1)
     return (aboveLower and belowUpper)

    @size =
      width: 1
      height: 1
    @momentum =
      horizontal: 0
      vertical: 0
    @reference = WINDOW

    @isVisible = true


    return

  update: ->
    @position.absolute.x = @reference.getX() + @position.relative.x
    @position.absolute.y = @reference.getY() + @position.relative.y
