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

    // 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)
        }

            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
