protected Set<C> getSubclasses(C aClass) {
    return myClassToSubclassesMap.computeIfAbsent(aClass, k -> Collections.synchronizedSet(new LinkedHashSet<>()));
  }
protected Set<C> getSubclasses(C aClass)