implement GroupByString + tests