fix event bubbling