             headers["Authorization"] = "Bearer \(authorization.accessToken)"
         }
         headerFields = headers
+    }
+
+    func parse(data: Data, urlResponse: HTTPURLResponse) throws -> R {
+        print(String(data: data, encoding: .utf8) ?? "[empty]", urlResponse)
+        let parsedObject = try dataParser.parse(data: data)
+        let passedObject = try intercept(object: parsedObject, urlResponse: urlResponse)
+        return try response(from: passedObject, urlResponse: urlResponse)
     }
 
     func intercept(object: Any, urlResponse: HTTPURLResponse) throws -> Any {

    let method: HTTPMethod
    let baseURL: URL
    let path: String

    let headerFields: [String : String]
    let parameters: Any?


        method = request.method
        baseURL = request.baseURL
        path = request.path
        dataParser = request.dataParser
        parameters = request.parameters
        response = request.response
        raw = request
