                     let newRequest = newEndpoint.urlRequest
                     let newEncodedRequest = try? encoding.encode(newRequest!, with: parameters)
 
-                    expect(request?.httpBody).to(equal(newEncodedRequest?.httpBody))
-                    expect(request?.url?.absoluteString).to(equal(newEncodedRequest?.url?.absoluteString))
-                    expect(request?.allHTTPHeaderFields).to(equal(newEncodedRequest?.allHTTPHeaderFields))
-                    expect(request?.httpMethod).to(equal(newEncodedRequest?.httpMethod))
+                    expect(request.httpBody).to(equal(newEncodedRequest?.httpBody))
+                    expect(request.url?.absoluteString).to(equal(newEncodedRequest?.url?.absoluteString))
+                    expect(request.allHTTPHeaderFields).to(equal(newEncodedRequest?.allHTTPHeaderFields))
+                    expect(request.httpMethod).to(equal(newEncodedRequest?.httpMethod))
                 }
             }
 
             context("when task is .requestCompositeData") {
                 var parameters: [String: Any]!
                 var data: Data!
-                var request: URLRequest?
+                var request: URLRequest!
 
                 beforeEach {
                     parameters = ["Nemesis": "Harvey"]


                it("updated url") {
                    let expectedUrl = endpoint.url + "?Nemesis=Harvey"
                    expect(request?.url?.absoluteString).to(equal(expectedUrl))
                }

                it("updated httpBody") {
                    expect(request?.httpBody).to(equal(data))
                }

                it("didn't update any of the other properties") {


                it("updated url") {
                    let expectedUrl = endpoint.url + "?Harvey=Nemesis"
                    expect(request.url?.absoluteString).to(equal(expectedUrl))
                }

                it("updated the request correcly") {
