What if a language exists and I try to call setGroup for that language, but my new group is empty? This will be silently ignored and the old non-empty group will still be there. Either remove the old group or throw an exception if you don't want to accept empty groups.