How Grouping helps iterate against a Datasource