public RoleName Role(string name) { if (_roles.Exists(r => r.Name == name)) throw new ArgumentException("non-unique role name " + name); var roleName = new RoleName(name); _roles = _roles.Add(roleName); return roleName; }