     public var value: V? = nil
     public var reason: NSError? = nil
     
-    var fulfillCallbacks: [FulfillClosure] = []
-    var rejectCallbacks: [RejectClosure] = []
+    lazy var fulfillCallbacks: [FulfillClosure] = []
+    lazy var rejectCallbacks: [RejectClosure] = []
     
     
     // MARK: - Initializers
     
-    required
-    public init() {}
+    init() {}
     
     required
     public init(value: V)

    }
    
    required convenience
    public init(resovler: (
        resolve: (value: V) -> Void,
        reject: (reason: NSError) -> Void
        ) -> Void)
    {
        self.init()
        resovler(

    
    public class func resolve(value: Any?) -> Promise<Any?>
    {
        // TODO: Downcast to thenable and resolve it
        
        switch value {
        case let promise as Promise<Any?>:
