- refactor message bus
- support async/await in message bus