updated event model