 		@centerPoint ?= @startPoint
 		
 		if @isPinchKeyDown and not @isPanKeyDown
-			@touchPoint = Utils.pointAdd(@mouseCursorInitialOffset, @pinchPoint(@point, @centerPoint))
+			@touchPoint = Utils.pointAdd(@touchPointerInitialOffset, @pinchPoint(@point, @centerPoint))
 			@touchPointDelta = Utils.pointSubtract(@point, @touchPoint)
 			
 		if @isPinchKeyDown and @isPanKeyDown
 			@touchPoint = @panPoint(@point, @touchPointDelta)
 
 		if @isPinchKeyDown or @isPanKeyDown
-			@imageLayer.visible = true
-			@imageLayer.midX = @touchPoint.x
-			@imageLayer.midY = @touchPoint.y
+			@touchPointLayer.visible = true
+			@touchPointLayer.midX = @touchPoint.x
+			@touchPointLayer.midY = @touchPoint.y
 	
 		if @isPinchKeyDown or @isPanKeyDown
 			dispatchTouchEvent("touchmove", @target, event, @touchPointDelta)

		@isPinchKeyDown = false
		@isPanKeyDown = false
		
		mouseCursorInitialOffset = @mouseCursorInitialOffset

		@context.run =>
			@imageLayer = new Layer
				width: @mouseCursorImageSize
				height: @mouseCursorImageSize
				image: @mouseCursorImage
				opacity: 0
	
	showTouchCursor: ->
		@imageLayer.animateStop()
		@imageLayer.midX = @point.x
		@imageLayer.midY = @point.y
		@imageLayer.scale = 1.8
		@imageLayer.animate
			properties:
				opacity: 1
				scale: 1
				# midX: @point.x + @mouseCursorInitialOffset.x
				# midY: @point.y + @mouseCursorInitialOffset.y
			time: 0.1
			curve: "ease-out"

	hideTouchCursor: ->
		@imageLayer.animateStop()
		@imageLayer.animate
			properties:
				opacity: 0
				scale: 1.2

		else
			dispatchTouchEvent("touchend", @target, event)
	
		@touchPointLayer.image = @touchPointerImage
		@hideTouchCursor()
	
	pinchPoint: (point, centerPoint) ->
