split out presentation. move to named tuple for aggregation results