add partition() to go along with group()