I think TopGroups/GroupDocs should simply be in core?
Both grouping and join modules use these trivial classes, but join depends on grouping just for them.
I think its better that we try to minimize these inter-module dependencies.
Of course, another option is to combine grouping and join into one module, but
last time i brought that up nobody could agree on a name.
Anyway I think the change is pretty clean: its similar to having basic stuff like Analyzer.java in core,
so other things can work with Analyzer without depending on any specific implementing modules.