 		}
 		let response = try client.respond(to: request)
 		switch response.body {
-		case .data(let bytes): return try JSON(bytes: bytes)
+		case .data(let bytes): return Data(bytes: bytes)
 		case _: throw Error.invalidResponse
 		}
 	}

		self.client = client
	}
	
	open func performRequest(method: HTTP.Method = .get,
	                         path components: [String] = [],
	                         query: [String: CustomStringConvertible] = [:],
	                         headers: [HeaderKey: String] = [:],
	                         body: ContentBody = .empty) throws -> JSON {
		
		guard let path = components.joined(separator: "/").addingPercentEncoding(withAllowedCharacters: .urlPathAllowed) else {
			throw Error.invalidURL
		}

	public let baseUrl: String
	public let client: Responder
	
	public var jsonDecoder = JSONDecoder()
	
	public enum Error: Swift.Error {
		case invalidResponse
		case invalidURL
