      
      - parameter handler: A handler that will be called after `uploadProgress` changes.
      */
-    func addUploadProgress(handler: BytesProgressHandler)
+    func addUploadProgress(handler: @escaping BytesProgressHandler)
     
     /**
      Add a handler to be notified when the task is complete

     
        - parameter handler: A handler that will be called after `downloadProgress` changes.
    */
    func addProgress(handler: BytesProgressHandler)
    
    /// This will take a task that is in the `waiting` state, and move it into the `running` state, allowing it to do it's thing
    func resume()

     
     - parameter handler: A handler that will be called when the task completes
     */
    func addCompletion(handler: @escaping DownloadCompletionHandler)
    
    /// The request that was used to create this task, this will be a duplicate of `request` but with additional download specific stuff added
    var downloadRequest: DownloadRequestType { get }
