full event bubbling support
change add object pattern