made group by more future proof - easier to write more aggregation methods