public <T> T createProxy(Class<T> agentInterface, T agentInstance) {
    ClassLoader callerClassLoader = myCallerClassLoaderProvider.getCallerClassLoader(agentInterface);

    return ReflectionUtil.proxy(callerClassLoader,
                                agentInterface,
                                new ThreadInvocationHandler(
                                  SequentialTaskExecutor.createSequentialApplicationPoolExecutor(
                                    "RemoteAgentThreadProxyCreator Pool"),
                                  callerClassLoader, agentInstance,
                                  myPreWrapperCreator
                                ));
  }
public <T> T createProxy(Class<T> agentInterface, T agentInstance)