docs: protected <T> T instantiate(String name, ClassLoader classLoader) {
      try {
        Class<?> generatedClass = loadClass(classLoader, name);
        if (generatedClass == Void.class) {
          return null;
        }
        @SuppressWarnings("unchecked")
        T instance = (T) generatedClass.newInstance();
        return instance;
      } catch (InstantiationException e) {
        throw new RuntimeException("Failed to initialize " + name, e);
      } catch (IllegalAccessException e) {
        throw new RuntimeException("Failed to initialize " + name, e);
      }
    }