new aggregating event listener