review aggregation on client side