 	/// See https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_query.htm
 	/// - Parameter soql: Array of SOQL queries
 	/// - Returns: Promise of an array of QueryResults, in the same order as the "soql" parameter
-	open func query(soql: [String]) -> Promise<[QueryResult<SObject>]> {
-		let promises: [Promise<QueryResult<SObject>>] = soql.map { query(soql: $0) }
+	open func query(soql: [String]) -> Promise<[QueryResult<Record>]> {
+		let promises: [Promise<QueryResult<Record>>] = soql.map { query(soql: $0) }
 		return when(fulfilled: promises)
 	}
 	

		let resource = Resource.describeGlobal(version: version)
		return requestor.request(resource: resource, connectedApp: connectedApp).then(on: q) {
			(data: Data) -> [ObjectMetadata] in
			struct DescribeAllResult: Decodable {
				var sobjects: [ObjectMetadata]
			}
			let result: DescribeAllResult = try self.decoder.decode(DescribeAllResult.self, from: data)
			return result.sobjects
		}
	}
	
	/// Asynchronously retrieves an image at the given path.
	/// Use this method only for small images, e.g. images at Account.PhotoUrl, Contact.PhotoUrl, or Lead.PhotoUrl.
	/// - Parameter path: path relative to the user's instance URL
	/// - Returns: Promise of an image
	open func fetchImage(path: String) -> Promise<UIImage> {
		let resource = Resource.custom(method: .get, baseURL: nil, path: path, parameters: nil, headers: ["Accept": "image/*"])
		return requestor.request(resource: resource, connectedApp: connectedApp).asImage(on: q)
	}
	

		self.connectedApp = connectedApp
		self.version = version
	}
	
	// MARK: -
	
	/// Asynchronously requests information about the current user
	/// See https://help.salesforce.com/articleView?id=remoteaccess_using_openid.htm&type=0
