dont expect numGroups passed in