     let allNodes = (nodeA?.childNodes ?? [SKNode]()) + (nodeB?.childNodes ?? [SKNode]())
     
     return (allComponents, allNodes)
-
-  }
-
+    
+  }
+  
   final private func internalRecursiveDidBeginContact(contact: SKPhysicsContact) {
     for component in self.components { if component.isEnabled { component.didBeginContact?(contact) } }
     for child in self.childNodes     { child.internalRecursiveDidBeginContact(contact)  }

  public func didEndContact(contact: SKPhysicsContact) {
    super.internalDidEndContact(contact)
  }

  
  public func didMoveToView(view: SKView) {
    self.physicsWorld.contactDelegate = self
  }

  public func willMoveFromView(view: SKView) {
    
  }
  


}

extension SKNode {
  
  final private func internalUpdate(currentTime: NSTimeInterval) {
    for component in self.components { if component.isEnabled { component.didUpdate?(currentTime) } }
    for child in self.childNodes     { child.internalUpdate(currentTime) }
  }

  final private func internalDidEvaluateActions() {
    for component in self.components { if component.isEnabled { component.didEvaluateActions?() } }
    for child in self.childNodes     { child.internalDidEvaluateActions()  }
  }
  
  final private func internalDidSimulatePhysics() {
    for component in self.components { if component.isEnabled { component.didSimulatePhysics?() } }
    for child in self.childNodes     { child.internalDidSimulatePhysics()  }
  }
  
  /* Constraints
  
  */

  final private func internalDidFinishUpdate() {
    for component in self.components { if component.isEnabled  { component.didFinishUpdate?() } }
    for child in self.childNodes     { child.internalDidFinishUpdate()  }
    
  }

  final private func tupleForContact(contact: SKPhysicsContact) -> (allComponents: [Component], allNodes: [SKNode]) {
    let nodeA = contact.bodyA.node
    let nodeB = contact.bodyB.node

  
  
  
  final func _addChild(node:SKNode!) {
    if node.parent != self {
      node.removeFromParent()
      self.addedChild(node);
      self._addChild(node)
    }
    
  }
  
  final func _insertChild(node: SKNode!, atIndex index: Int) {
    if node.parent != self {
      node.removeFromParent()
      self._insertChild(node, atIndex: index)
      self.addedChild(node);
    }
    
