I've added new clases for modeling messages. They are implementing
appropriate interfaces.