refactored some models and added a page for the event