     self.addSubview(self.titleLabel)
   }
   
-  override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
+  override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
     
     self.cancelEvent = false
     self.currentState = UIControlState.Highlighted
     self.setNeedsDisplay()
   }
   
-  override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
+  override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
     
     self.cancelEvent = true
     self.currentState = UIControlState.Normal
     self.setNeedsDisplay()
     if let nextResponder = self.nextResponder() {
-      nextResponder.touchesMoved(touches, withEvent: event)
-    }
-  }
-  
-  override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
+      nextResponder.touchesMoved(touches as Set<NSObject>, withEvent: event)
+    }
+  }
+  
+  override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
     
     self.currentState = UIControlState.Normal
     self.setNeedsDisplay()
     
     if self.cancelEvent {
       if let nextResponder = self.nextResponder() {
-        nextResponder.touchesEnded(touches, withEvent: event)
+        nextResponder.touchesEnded(touches as Set<NSObject>, withEvent: event)
       }
     } else {
       self.triggerSelector()

    
    self.imageView.backgroundColor = UIColor.clearColor()
    self.imageView.userInteractionEnabled = false
    
    self.overlayView.backgroundColor = UIColor.clearColor()
    self.overlayView.userInteractionEnabled =  false

      switch self.currentState {
      case UIControlState.Normal:
        self.overlayView.backgroundColor = UIColor.clearColor()
      case UIControlState.Highlighted:
        self.overlayView.backgroundColor = self.selectedColor
      default:
        self.overlayView.backgroundColor = UIColor.clearColor()
      }
