 		
 		downloadProgress = nil
 		
-		isExecutingOperation = false
-		isFinishedOperation = true
+		updateExecutingAndFinished(false, true)
 	}
 	
 	func didFinish(_ error: Error) {

		return isExecutingOperation
	}
	
	private var isExecutingOperation = false {
		willSet {
			willChangeValue(for: \.isExecuting)
		}
		didSet {
			didChangeValue(for: \.isExecuting)
		}
	}
	
	override var isFinished: Bool {
		return isFinishedOperation
	}
	
	private var isFinishedOperation = false {
		willSet {
			willChangeValue(for: \.isFinished)
		}
		didSet {
			didChangeValue(for: \.isFinished)
		}
	}

	
	override func start() {
		guard !isCancelled else {
			updateExecutingAndFinished(false, true)

			if downloadProgress != nil {
				DispatchQueue.main.async {
					self.downloadProgress = nil
