@Override
  public @Nullable String getTypeName(@NotNull Object o) {
    return findFirst(o.getClass(), template -> template.getTypeName(o));
  }
@Override
  public @Nullable String getTypeName(@NotNull Object o)