public List<Organism> mutation(int numForAverageFitness) throws Exception {
        List<Organism> mutated = new ArrayList<>();
        int N = this.getNumberOrganisms();
        for (int i = 0; i < N; i++) {
            OrganismFactory fabrica = new OrganismFactory();
            Organism organism4mutation = fabrica.dublicate(getOrganisms().get(i));
            boolean changed = mutateOrganism(organism4mutation);
            if (changed) { // if organism was changed => add in population
                organism4mutation.countFitnessOut(numForAverageFitness);
                mutated.add(organism4mutation);
            }
        }
        return mutated;
    }