Refactoring, need a more generic Event model