refactor future events