 		canSendMessages: Bool? = nil,
 		canSendMediaMessages: Bool? = nil,
 		canSendOtherMessages: Bool? = nil,
-		canSendWebPagePreviews: Bool? = nil) -> Result<Bool>  {
-		return performRequest(
+		canSendWebPagePreviews: Bool? = nil) throws -> Bool  {
+		return try performRequest(
 			ofMethod: "restrictChatMember",
 			payload: RestrictChatMemberPayload(
 				chatId: chatId,

		text: String? = nil,
		showAlert: Bool? = nil,
		url: String? = nil,
		cacheTime: Int? = nil) -> Result<Bool> {
		return performRequest(
			ofMethod: "answerCallbackQuery",
			payload: AnswerCallbackQueryPayload(
				callbackQueryId: callbackQueryId,

	                      title: String, address: String, foursquareId: String? = nil,
	                      to receiver: Sendable,
						  disableNotification: Bool? = nil,
						  replyMarkup: InlineKeyboardMarkup? = nil) throws -> Message {
		let payload = SendingPayload(content: .venue(latitude: latitude, longitude: longitude, title: title, address: address, foursquareId: foursquareId),
		                             chatId: receiver.chatId,
		                             replyToMessageId: receiver.replyToMessageId,
									 disableNotification: disableNotification,
									 replyMarkup: nil)
		return try performRequest(ofMethod: "sendVenue", payload: payload)
	}

	@discardableResult
	public func sendContact(phoneNumber: String, firstName: String, lastName: String? = nil,
	                        to receiver: Sendable,
							disableNotification: Bool? = nil,
							replyMarkup: InlineKeyboardMarkup? = nil) throws -> Message {
		let payload = SendingPayload(content: .contact(phoneNumber: phoneNumber, firstName: firstName, lastName: lastName),
		                             chatId: receiver.chatId,
		                             replyToMessageId: receiver.replyToMessageId,
									 disableNotification: disableNotification,
									 replyMarkup: nil)
		return try performRequest(ofMethod: "sendContact", payload: payload)
	}

	@discardableResult
	public func send(chatAction: ChatAction, toChat chatId: Int) throws -> Bool {
		let payload = SendingPayload(content: .chatAction(chatAction: chatAction),
									 chatId: chatId, replyToMessageId: nil, disableNotification: nil,
									 replyMarkup: nil)
		return try performRequest(ofMethod: "sendChatAction", payload: payload)
	}

	@discardableResult
	public func deleteMessage(inChat chatId: Int, messageId: Int) throws -> Bool {
		return try performRequest(ofMethod: "deleteMessage",
							  payload: ["chat_id": chatId, "message_id": messageId])
	}

	public func getFile(ofId fileId: String) throws -> File {
		return try performRequest(ofMethod: "getFile", payload: ["file_id": fileId])
	}

	public func getChatAdministrators(ofChatWithId chatId: Int) throws -> [ChatMember] {
		return try performRequest(ofMethod: "getChatAdministrators", payload: ["chat_id": chatId])
	}

	@discardableResult
