docs: public JMProgressiveManager<T, R> start() {
  		info(log, "start");
  		this.completableFuture = JMThread
  				.runAsync(() -> targetCollection.stream()
  						.filter(negate(isStopped())).map(this::moveNextTarget)
  						.map(t -> JMMap.putGetNew(resultMap, t, process(t)))
  						.forEach(lastResult::set))
  				.thenRun(this::setStopped)
  				.thenRun(() -> Optional.ofNullable(completedConsumerList)
  						.ifPresent(list -> list.parallelStream()
  								.forEach(c -> c.accept(this))));
  		return this;
  	}