         touch_start = (event)=>
             event.preventDefault()
             for t in event.targetTouches
-                touch = {}
+                touch = @touch.touch_events[t.identifier] or {}
                 touch.touching = true
                 touch.id = t.identifier
                 touch.client_x = t.clientX

                touch.rotation_angle = t.rotationAngle
                touch.x = t.clientX - root_element.rect.left
                touch.y = t.clientY - root_element.rect.top
                x = t.clientX
                y = t.clientY
                if @touch.touch_events[touch.id]?
                    touch.rel_x = x - @touch.touch_events[touch.id].client_x
                    touch.rel_y = y - @touch.touch_events[touch.id].client_y
                else
                    touch.rel_x = 0
                    touch.rel_y = 0
                touch.movement_since_touch = Math.abs(touch.rel_x) + Math.abs(touch.rel_y)
                @touch.touch_events[touch.id] = touch
            @touch.touches = event.targetTouches.length


            event.preventDefault()

            for t in event.targetTouches
                touch = @touch.touch_events[t.identifier] or {}
                x = t.clientX
                y = t.clientY
                rel_x = x - (touch.client_x or 0)
                rel_y = y - (touch.client_y or 0)
                touch.id = t.identifier
                touch.touching = true
                touch.client_x = t.clientX
