need to work on event model