add rationale, and initial event bus implementation