protected Gene<?>[] crossover( Individual p2)
	{
		Gene<?>[] newGenotype = new Gene<?>[this.genotype.length];
		int crossPnt = (int) Math.floor( random.nextFloat() * this.genotype.length ); 
		
		
		for( int i=0; i < crossPnt ; i++ )
		{	
			newGenotype[i] = this.genotype[i].clone();
		}	
		for( int i=crossPnt; i < genotype.length ; i++ )
		{
			newGenotype[i] = p2.genotype[i].clone();
		}	
		
		return newGenotype;
	}