Introduce declarative event mapping