added internal event binding