@Override
  public @Nullable MultiRoutingFileSystem newFileSystem(URI uri, @Nullable Map<String, ?> env) {
    if (env == null) {
      return getFileSystem(uri);
    }

    String root = Objects.requireNonNull((String)env.get(KEY_ROOT));
    Boolean isPrefix = Objects.requireNonNull((Boolean)env.get(KEY_PREFIX));
    Boolean caseSensitive = Objects.requireNonNull((Boolean)env.get(KEY_CASE_SENSITIVE));

    @SuppressWarnings({"unchecked", "rawtypes"})
    BiFunction<@NotNull FileSystemProvider, @Nullable FileSystem, @Nullable FileSystem> function =
      Objects.requireNonNull((BiFunction)env.get(KEY_FUNCTION));

    myFileSystem.computeBackend(root, isPrefix, caseSensitive, function);
    return null;
  }
@Override
  public @Nullable MultiRoutingFileSystem newFileSystem(URI uri, @Nullable Map<String, ?> env)