Add a new handler to handle updating unread status for messages.
Change DataMessageHandler to an abstract class