         self.queue = dispatch_queue_create(queueLabel, DISPATCH_QUEUE_SERIAL)
     }
     
-    public func _cancel() {
+    private func _cancel() {
         guard let scheduledTimer = timer else {
             return
         }

public typealias DoBlock = @convention(block) (object:AnyObject) -> Void
public typealias LockedBlock = @convention(block) () -> Void

public class Timer:NSObject {
    private weak var object:AnyObject?
    
    private let queue:dispatch_queue_t

        self.timer = nil
    }
    
    public func cancel() {
        self.whileLocked {
            self._cancel()
        }
