refactor events