Refactor message system again - now using an event manager for routing messages.