event model refactoring