refactoring on Event, some tests