Refactored to finer grained actors and event bus