                 userInfo: nil,
                 repeats: repeats)
             self.timer!.tolerance = duration * NSTimeInterval(tolerance)
+            self._running = true
         })
     }
     

    private var tolerance:Float?
    private var repeats:Bool = false
    
    deinit {
        stop()
    }
    
    /**
     Start a timer with a completion block.
     
     - Parameter duration: The duration in seconds between start and when the completion block is invoked.
     - Parameter repeats: Indicate if timer should repeat. Defaults to false

    }
    
    private func _stop() {
        self._running = false
        if let timer = self.timer {
            timer.invalidate()
        }
