Add initial framework for group-by and aggregate functions