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

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

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

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