public void breeeed (List<Tree> t) {
	int n2Select = Parameter.getI("tourney");
	int popsize  = Parameter.getI("population");
	float mutation = Parameter.getF("mutation");
	float crossover= Parameter.getF("crossover");
	float r;
        int r1, r2;
	ArrayList<Tree> generated = new ArrayList<Tree>(t.size());
        Tree current, crossNode;
	
	for (int i = 0; i < popsize; i++) {
	    r = gen.nextFloat();
            r1 = gen.nextInt(min(t.size(),n2Select));
            current = (Tree) t.get(r1).clone();
            
	    if (r < crossover) {
                //do {
                r2 = gen.nextInt(min(t.size(),n2Select));
                //} while( r1 == r2);
                crossNode = (Tree) t.get(r2).clone();
                // l("Chosen crossover!", current, crossNode, r1, r2);
                
                crossover(current, crossNode);
                
                generated.add(current);
                generated.add(crossNode);
                // l("\tGot this:", current, crossNode);
                
                i++; // because we made two
	    } else if (r >= 1-mutation) {
		mutate(current);
                generated.add(current);
	    } else {
		System.err.println("SELECTION ERROR:: Your mutation/crossover don't add up to 1");
	    }
	}
	t.clear();
        if (generated.size() > popsize)
            while(generated.size() > popsize)
                generated.remove(0);
        t.addAll(generated);
    }