It is also very confusing that the function groups() receives as first param a group name... Seems counter intuitive to me, had to read several times this part to understand what it was trying to do.