Refactored to use own event bus