protected static FunctionContext getInstance(ContextType contextType, Factory<? extends FunctionContext> factory) {
    return ourInstances.computeIfAbsent(contextType, k -> factory.create());
  }
protected static FunctionContext getInstance(ContextType contextType, Factory<? extends FunctionContext> factory)