Change generic names
Add demo for groupBy
Add javadoc to groupBy