@Override
	public void addProgram(Program program) {
		Double currentFitness = 0.0;
		if(program.getFitness() == null)  fitnessFunction.computeFitness(program);
		currentFitness = program.getFitness();
		int index = 0;
		while (index < programs.size() && currentFitness > fitness.get(index)) {
			index++;
		}
		this.programs.add(index, program);
		this.fitness.add(index, currentFitness);
	}