     
     // MARK: - Instance methods
     public func execute<Model: Decodable>(request: URLRequest,
+                                          with decoder: JSONDecoder = JSONDecoder(),
                                           handler: @escaping Handler<Model>) {
         // Ensure all our responses are back on the main thread
         let completion = { response in DispatchQueue.main.async { handler(response) }}

                        data = RawResponse.from(data)
                    }
                    
                    try self.parse(data, response: response, completion: completion)
                } else {
                    throw ResponseError.unsuccessful(response)
                }

    }
    
    // MARK: - Private methods
    private func dump(_ text: String) {
        #if DEBUG
            print("[RESTClient] \(text)")
