 	
 	public func update(messageSeenStatus status: MMSeenStatus, for messageId: MessageId, completion: @escaping () -> Void) {
 		var newSeenMessagsCount = 0
-		updateMessage(
+		updateMessages(
 			foundWith: NSPredicate(format: "messageId == %@", messageId),
 			applyChanges: { message in
 				message.seenStatusValue = status.rawValue

		}
	}
	
	private func updateMessage(foundWith predicate: NSPredicate, applyChanges: @escaping (Message) -> Void, completion: @escaping () -> Void) {
		guard let context = context else {
			completion()
			return
		}
		context.performAndWait {
			if let message = Message.MM_findFirstWithPredicate(predicate, context: context) {
				applyChanges(message)
				context.MM_saveToPersistentStoreAndWait()
				self.didUpdate(message: message)
			}
		}
		completion()

	}
	
	public func update(deliveryReportStatus isDelivered: Bool, for messageId: MessageId, completion: @escaping () -> Void) {
		updateMessages(
			foundWith: NSPredicate(format: "messageId == %@", messageId),
			applyChanges: { message in
				message.isDeliveryReportSent = isDelivered
