refactor event list