foundation
event bus
1st refactor