combine addEvent and removeEvent