Refactory IEvent design.