add event binding system