add event bus implementation