implement analytic as listener aggregate