Rework Messages and the Listener structure.