add event dispatcher