     private var buttWidthConstraint = NSLayoutConstraint()
     private var buttHeightConstraint = NSLayoutConstraint()
     
+    private var touchIndexes = [Int]()
+
     override init(frame: CGRect) {
         super.init(frame: frame)
         self.backgroundColor = UIColor.blackColor()

    
    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
        var touch = touches.first as! UITouch
        touch.touchIndex = touchDict.count
        
        let touchPoint = touch.locationInView(self)
        if let button = self.hitTest(touchPoint, withEvent: UIEvent()) as? SlipperyButton {

        let key = NSValue(nonretainedObject: touch)
        if let endedButton = touchDict[key] as SlipperyButton! {
            touchDict.removeValueForKey(key)
            
            for idx in 0...touchIndexes.count {
                if touchIndexes[idx] == touch.touchIndex {
                    touchIndexes.removeAtIndex(idx)
                    break;
                }
            }
            
            self.delegate?.didDeactivateButtonWithNoteNum(endedButton.tag, touchIndex: touch.touchIndex)
            
            // if the button is not being pointed to by another touch
