added bubble event listening