Feature/event bus 90

Implement event bus for #90 all tests pass.