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

			
			return
		}
		
		isExecutingOperation = true
		DispatchQueue.main.async {
			self.main()
		}

		return isExecutingOperation
	}
	
	override var isFinished: Bool {
		return isFinishedOperation
	}

	private var isExecutingOperation = false
	private var isFinishedOperation = false

	private func updateExecutingAndFinished(_ executing: Bool, _ finished: Bool) {
		let isExecutingDidChange = executing != isExecutingOperation
		let isFinishedDidChange = finished != isFinishedOperation

		if isFinishedDidChange {
			willChangeValue(for: \.isFinished)
		}
		if isExecutingDidChange {
			willChangeValue(for: \.isExecuting)
		}
		isExecutingOperation = executing
		isFinishedOperation = finished

		if isExecutingDidChange {
			didChangeValue(for: \.isExecuting)
		}
		if isFinishedDidChange {
			didChangeValue(for: \.isFinished)
		}
	}
