added bubbling to event dispatcher