improved GroupByJoin