Split off getAllGroups(), to facilitate subclassing for weird circumstances (like...