@Override
  public <T, R> List<R> execute(boolean inParallel, @NotNull Collection<T> collection, @NotNull Function<T, R> method) {
    Context context = Context.current();

    // there are issues with passing context to common pool (used by parallelStream and ParallelRunnerForServer)
    // all spans in pool common threads do not get attached to parent span and get lost
    // so: either wrap the function or rewrite ParallelRunnerForServer to not use common pool
    return ParallelRunnerForServer.execute(inParallel, collection, context.wrapFunction(method));
  }
@Override
  public <T, R> List<R> execute(boolean inParallel, @NotNull Collection<T> collection, @NotNull Function<T, R> method)