 
 enum ControlPosition: Int {
     case ControlLeft = 0, ControlCenter, ControlRight
+    
+    func next(direction: PanDirection) -> ControlPosition {
+        
+        var next: ControlPosition = self
+        switch(self) {
+            
+            case .ControlLeft:
+                if(direction == .Right) {
+                    next = .ControlCenter
+                }
+            case .ControlCenter:
+                if(direction == .Right) {
+                     next = .ControlRight
+                } else if(direction == .Left) {
+                    next = .ControlLeft
+                }
+            case .ControlRight:
+                if(direction == .Left) {
+                    next = .ControlCenter
+                }
+            default: ()
+            
+        }
+        return next
+    }
+    
+    var description : String {
+        
+        switch self {
+            case .ControlLeft:      return "ControlLeft";
+            case .ControlCenter:    return "ControlCenter";
+            case .ControlRight:     return "ControlRight";
+        }
+        
+    }
 }
 
 struct Control {

            self.controlImages?.append(UIImageView())
        }
        
        for var index = 0; index < 3; ++index {
            if let position = ControlPosition(rawValue:index) {
                self.controls?.append(Control(position: position, imageView: UIImageView()))

                    
                } else if frame.size.width > kBendableWidthThreshold {
                    
                    var nextPosition = self.selectedControl.position.next(self.panDirection)
                    if let control = self.controls?[nextPosition.rawValue] {
                        self.selectedControl = control
                    }
                    
                    self.bendableCircle.state = .Translating
                    UIView.animateWithDuration(0.2, animations: {
                        self.bendableCircle.frame = self.selectedControl.transformToBendableViewFrame()
                        }, completion: {
                            (value: Bool) in
                            self.bendableCircle.state = .Active
                    })
                }
            }
            
        } else if (recognizer.state == .Ended ||
                   recognizer.state == .Cancelled ||
                   recognizer.state == .Failed) {
