     /**
         Touches Cancelled
     */
-    override func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!) {
+    override func touchesCancelled(touches: Set<NSObject>!, withEvent event: UIEvent!) {
         self.reset()
     }
     

    /**
        Touches Began
    */
    override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!)  {
        if ( event.touchesForGestureRecognizer(self)?.count > 1 ) {
            // give a direct failed when more than touches are detected
            self.state = .Failed;
            return
        }
        let touch:UITouch = touches.anyObject() as UITouch
        self.startingPoint = touch.locationInView(self.view)
        if ( self.state == .Changed ) {
            // do nothing now

    /**
        Touches Moved
    */
    override func touchesMoved(touches: Set<NSObject>!, withEvent event: UIEvent!) {
        let touch:UITouch = touches.first as! UITouch
        if ( !self.isOnHisWay(touch.locationInView(self.view)) ) {
            self.state = .Failed;
        }
