refactor all methods to use event object