         }
     }
     
-    override func cancel() {
+    override open func cancel() {
         super.cancel()
         self.networkTask?.cancel()
         

            didChangeValue(forKey: "isFinished")
        }
    }


    //MARK: Callbacks
    public var didFinishWithErrorCallback : ((_ error: Error?) -> Void)?
    public var didFinishSuccessfullyCallback : ((_ responseObject: AnyObject?) -> Void)?

    //MARK: Overriden Methods
    override func start() {
        DispatchQueue.main.async {
            self.willChangeValue(forKey: "isExecuting")
            self.isExecuting = true

    }
    
    private var _finished : Bool = false
    override open var isFinished : Bool {
        get { return _finished }
        set {
            guard _finished != newValue else { return }
