         return CGPoint(x: xPos, y: yPos);
     }
     
-    func addText(_ item: String) {
+    open func addText(_ item: String) {
         defaultText  = SKLabelNode(fontNamed: "HelveticaNeue");
         defaultText?.text = item
         
         self.addChild(defaultText!);
         
         items.append(MenuItem(item: defaultText!, callback: nil));
-        defaultText?.position = CGPoint(x:0, y:xPos);
-        xPos = xPos - (Int(defaultText!.frame.height) + self._padding);
+        defaultText?.position = CGPoint(x: 0, y: xPos);
+        xPos -= (Int(defaultText!.frame.height) + self.padding);
     }
     
     func changeText(_ item: String) {
         defaultText?.text = item;
     }
     
-    
     func setPosition() {
-        
-    }
-    
+    }
     func menuTargetTouched() {
         //
     }
-    
     func render() {
         //
     }
 }
-
 
 #if os(watchOS)
     extension SKMenuNode {
         @available(watchOSApplicationExtension 3.0, *)
         @IBAction func handleSingleTap(tapGesture: WKTapGestureRecognizer) {
             let location = tapGesture.locationInObject()
-            
             for index in 0...items.count-1 {
                 if (items[index].item.calculateAccumulatedFrame().contains(location)) {
                     if (items[index].callback != nil) {

        }
    }
#endif
    
#if os(iOS) || os(tvOS)
    extension SKMenuNode {
        override open func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        let size = self.calculateAccumulatedFrame();
        
        let tempNode = SKSpriteNode(color: UIColor.clear,
                                    size: CGSize(width: size.width, height: size.height));
        
        self.position = CGPoint(x: -1 * size.midX, y: -1 * size.midY);
        
