@Override
 public ILearningCharmGroup[] getCharmGroups(IIdentificate type) {
   if (MartialArtsUtilities.MARTIAL_ARTS.equals(type)) {
     return martialArtsGroups;
   }
   return nonMartialArtsGroupsByType.get(type);
 }
 @Override
 public ILearningCharmGroup[] getCharmGroups(Identified type) {
   if (MartialArtsUtilities.MARTIAL_ARTS.equals(type)) {
     return martialArtsGroups;
   }
   return Functions.forMap(nonMartialArtsGroupsByType, new ILearningCharmGroup[0]).apply(type);
 }