     internal var _status = _NSThreadStatus.initialized
     internal var _cancelled = false
     /// - Note: this differs from the Darwin implementation in that the keys must be Strings
-    open var threadDictionary = [String:AnyObject]()
+    open var threadDictionary = [String : AnyObject]()
     
     internal init(thread: pthread_t) {
         // Note: even on Darwin this is a non-optional pthread_t; this is only used for valid threads, which are never null pointers.
         _thread = thread
     }
-
-    public init(_ main: @escaping (Void) -> Void) {
-        _main = main
+    
+    public override init() {
         let _ = withUnsafeMutablePointer(to: &_attr) { attr in
             pthread_attr_init(attr)
             pthread_attr_setscope(attr, Int32(PTHREAD_SCOPE_SYSTEM))
             pthread_attr_setdetachstate(attr, Int32(PTHREAD_CREATE_DETACHED))
         }
+    }
+    
+    public convenience init(block: @escaping () -> Swift.Void) {
+        self.init()
+        _main = block
     }
 
     open func start() {

        return true
    }
    
    open class func sleepUntilDate(_ date: Date) {
        let start_ut = CFGetSystemUptime()
        let start_at = CFAbsoluteTimeGetCurrent()
        let end_at = date.timeIntervalSinceReferenceDate

        }
    }

    open var isExecuting: Bool {
        return _status == .executing
    }

    open var isFinished: Bool {
        return _status == .finished
    }
    
    open var isCancelled: Bool {
        return _cancelled
    }
    
    open var isMainThread: Bool {
        NSUnimplemented()
    }
    
    open func cancel() {
        _cancelled = true
    }

    open class var callStackReturnAddresses: [NSNumber] {
        NSUnimplemented()
    }
    
    open class var callStackSymbols: [String] {
        NSUnimplemented()
    }
}

extension NSNotification.Name {
    public static let NSWillBecomeMultiThreaded = NSNotification.Name(rawValue: "") // NSUnimplemented
    public static let NSDidBecomeSingleThreaded = NSNotification.Name(rawValue: "") // NSUnimplemented
    public static let NSThreadWillExit = NSNotification.Name(rawValue: "") // NSUnimplemented
}
