MessageQueue
MessageQueue for all messages
Use MessageQueue in place of observer
Emit events for new MQ and Sim