     /**
         Touches Ended
     */
-    override func touchesEnded(touches: NSSet!, withEvent event: UIEvent!) {
-        let touch:UITouch = touches.anyObject() as UITouch
+    override func touchesEnded(touches: Set<NSObject>!, withEvent event: UIEvent!) {
+        let touch:UITouch = touches.first as! UITouch!
         let endPoint:CGPoint = touch.locationInView(self.view)
         
         if ( self.isOnHisWay(endPoint) && self.hasReachMinDistance(endPoint)  ) {

    /**
        Touches Cancelled
    */
    override func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!) {
        self.reset()
    }
    

    /**
        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;
        }
