     
     public typealias Failer = (NSError?) -> ()
     
-    private var onSuccess : Succeeder?
+    public var onSuccess : Succeeder?
     
-    private var onFailure : Failer?
+    public var onFailure : Failer?
     
-    private var state : FetchState<T> = FetchState.Pending
+    public var state : FetchState<T> = FetchState.Pending
     
     public init() {}
     

        return self
    }
    
    func succeed(value : T) {
        self.state = FetchState.Success(Wrapper(value))
        self.onSuccess?(value)
    }
    
    func fail(_ error : NSError? = nil) {
        self.state = FetchState.Failure(error)
        self.onFailure?(error)
    }
    
    var hasFailed : Bool {
        switch self.state {
        case FetchState.Failure(_):
            return true

            }
    }
    
    public var hasSucceeded : Bool {
        switch self.state {
        case FetchState.Success(_):
            return true
