     authentications: Authentication[]? = nil,
     didWriteDataHandler: CycleDidWriteBodyDataHandler? = nil,
     downloadFileHandler: CycleDownloadFileHander,
-    completionHandler: CycleCompletionHandler) {
+    completionHandler: CycleCompletionHandler) -> Cycle {
         var str = URLString
         if parameters {
             str = MergeParametersToURL(URLString, parameters!)

        cycle.dataToUpload = dataToUpload
        cycle.didSendBodyDataHandler = didSendBodyDataHandler
        cycle.start(completionHandler: completionHandler)
    }

    class func upload(URLString: String, fileToUpload: NSURL,
    parameters: Dictionary<String, String[]>? = nil,
    authentications: Authentication[]? = nil,
    didSendBodyDataHandler: CycleDidSendBodyDataHandler? = nil,
    completionHandler: CycleCompletionHandler) {
        var str = URLString
        if parameters {
            str = MergeParametersToURL(URLString, parameters!)

    requestProcessors: Processor[]? = nil, responseProcessors: Processor[]? = nil,
    authentications: Authentication[]? = nil,
    solicited: Bool = false,
    completionHandler: CycleCompletionHandler) -> Cycle {
        return self.createAndStartCycle(URLString, method: "HEAD", parameters: parameters,
            requestProcessors: requestProcessors,
            responseProcessors: responseProcessors,
