             }
         }
         
-        if let centerImage = self.controlImages?[1] {
+        if let centerControl = self.controls?[1] {
             var bendableCircleFrame = CGRectZero
-            var origin = CGPointMake(self.center.x - kBendableViewSize/2, centerImage.center.y - kBendableViewSize/2)
+            var origin = CGPointMake(self.center.x - kBendableViewSize/2, centerControl.center().y - kBendableViewSize/2)
             bendableCircleFrame.size = CGSizeMake(kBendableViewSize, kBendableViewSize)
             bendableCircleFrame.origin = origin
             self.bendableCircle.frame = bendableCircleFrame
             self.bendableCircle.setNeedsDisplay()
             
-            self.selectedControl = Control(position: .ControlCenter, imageView: centerImage)
+            self.selectedControl = centerControl
         }
     }
     

        if let imageViews = self.controlImages {
            for (index, value) in enumerate(imageViews) {
                if let image = self.dataSource?.pullForControls?(self, imageForIndex: index) {
                    self.addSubview(value)
                    value.image = image
                    value.frame = CGRectMake(startX + CGFloat(index) * kControlImageOffsetStart - image.size.width/2, self.bounds.size.height/2 + image.size.height/2, image.size.width, image.size.height)
                    value.alpha = 0.0


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 {
