     /// Performs the APIRequest. On a successful request the `success` closure will be called with the an object of the ReturnType. On a failed request the `failure` closure will be called with the error. On a cancelled request the `cancellation` closure will be called.
     @discardableResult
     open func perform() -> APIRequestToken {
-        let task = URLSession.shared.dataTask(with: urlRequest(), completionHandler: urlRequestCallback)
-        task.resume()
-        return APIRequestToken(task: task)
-    }
-
+        return APIRequestToken(dataTask)
+    }
 }
 
 

}

open class APIRequestToken {

    // MARK: - Properties
    open var state: APIRequestState {

    }
}

