             let b = sqrt(pow(lin.x, 2) + pow(lin.y, 2))
             dx = b == 0 ? 0 : (dx / b)
             dy = b == 0 ? 0 : (dy / b)
+            
+            if dx == 0 && dy == 0 {
+                return
+            } else if mode != .Moving {
+                mode = .Moving
+            }
             
             for node in floatingNodes {
                 let w = node.frame.size.width / 2

    // MARK: Frame Updates
    //@todo refactoring
    override func update(currentTime: NSTimeInterval) {
        floatingNodes.map { (node: SKNode) -> Void in
            let distanceFromCenter = distanceBetweenPoints(self.magneticField.position, secondPoint: node.position)
            node.physicsBody?.linearDamping = distanceFromCenter > 100 ? 2 : 2 + ((100 - distanceFromCenter) / 10)
        }

        if mode == .Editing {
            return
        }
        
        if let touch = touches.first as UITouch? {
            let plin = touch.previousLocationInNode(self)
