code: private List<Callable<List<EvaluatedCandidate<T>>>> createEpochTasks(int populationSize,
                                                                           int eliteCount,
                                                                           int epochLength,
                                                                           List<List<T>> islandPopulations)
      {
          List<Callable<List<EvaluatedCandidate<T>>>> islandEpochs
              = new ArrayList<Callable<List<EvaluatedCandidate<T>>>>(islands.size());
          for (int i = 0; i < islands.size(); i++)
          {
              islandEpochs.add(new Epoch<T>(islands.get(i),
                                            populationSize,
                                            eliteCount,
                                            islandPopulations.isEmpty() ? Collections.<T>emptyList() : islandPopulations.get(i),
                                            new GenerationCount(epochLength)));
          }
          return islandEpochs;
      }
docs: Create the concurrently-executed tasks that perform evolution on each island.