private void crossOver(Chromo<T> offspring1, Chromo<T> offspring2){
	    T tmp;
	    List<T> genes1 = offspring1.getGenes();
	    List<T> genes2 = offspring2.getGenes();

	    if (rand.nextDouble() < CROSSOVER_RATE){
	    	int position = (rand.nextInt(genes1.size()));
	    	
	        for (int i=position; i<genes1.size(); i++){
	            tmp = genes1.get(i);
				genes1.set(i, genes2.get(i));
	            genes2.set(i, tmp);
	        }
	    }
	    
	    offspring1.setGenes(genes1);
	    offspring2.setGenes(genes2);
	}