make event location a separate model to allow for events that repeatedly use the same location