code: @Override
      public List<FUTURE_TYPE> get(long timeout, TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
          // todo implement timestamp split.
          final List<FUTURE_TYPE> resultList = new ArrayList<>();
          for (Future<FUTURE_TYPE> future : futureList) {
              resultList.add(future.get(timeout, timeUnit));
          }
          return resultList;
      }
docs: Blocks until all subfuture results are available.
  
  @param timeout  the time until a timeout is thrown.
  @param timeUnit the unit of the timeout declaration.
  
  @return a list of future results.
  
  @throws InterruptedException is thrown if the thread was externally interrupted.
  @throws ExecutionException   in thrown if the execution of at least one subfuture is not available.
  @throws TimeoutException     is thrown if the timeout is reached.