         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

        dispatch_sync(self.queue, block)
    }
    
    public func after(delay delay:NSTimeInterval, perform block:DoBlock) {
        let requestTime = now()
        
        self.whileLocked {
