created client API, added EventBus as part of architecture, added event
listener with event type filter