         case(#keyPath(URLSessionTask.countOfBytesReceived)):
             callbacks.onRecive(task.countOfBytesReceived, task.countOfBytesExpectedToReceive)
         default:
-            break
+            super.observeValue(forKeyPath: keyPath, of: object, change: change, context: context)
         }
     }
 

            
            task?.resume()
        }
    }
    
    override func observeValue(

    }

    override func main() {
        let semaphore = DispatchSemaphore(value: 0)

        let completion: (Data?, URLResponse?, Error?) -> () = { [weak self] data, response, error in
            defer {
                semaphore.signal()
            }
            
            guard let `self` = self, !self.isCancelled else { return }

            if let error = error {
