class ExecutorServiceBuilder {

  public ExecutorService build() {

    final ThreadPoolExecutor executor =
        new ThreadPoolExecutor(
            corePoolSize,
            maxPoolSize,
            keepAliveTime.toMillis(),
            TimeUnit.MILLISECONDS,
            workQueue,
            threadFactory,
            handler);
    executor.allowCoreThreadTimeOut(allowCoreThreadTimeOut);

    return executor;
  }

  public  ExecutorServiceBuilder();

}