@Override
  public GroupDescription.Internal get(AccountGroup.UUID uuid) {
    if (!handles(uuid)) {
      return null;
    }

    AccountGroup g = groupCache.get(uuid);
    if (g == null) {
      return null;
    }
    return GroupDescriptions.forAccountGroup(g);
  }
 @Override
 public Collection<GroupReference> suggest(final String name, final ProjectControl project) {
   Iterable<AccountGroup> filtered =
       Iterables.filter(
           groupCache.all(),
           new Predicate<AccountGroup>() {
             @Override
             public boolean apply(AccountGroup group) {
               // startsWithIgnoreCase && isVisible
               return group.getName().regionMatches(true, 0, name, 0, name.length())
                   && groupControlFactory.controlFor(group).isVisible();
             }
           });
   return Lists.newArrayList(Iterables.transform(filtered, ACT_GROUP_TO_GROUP_REF));
 }