add addEvent() and removeEvent()