fixed add event
cleanup add event
simplified remove event