private int pickFree(byte[] schedule) {
		int[] freeSlots = new int[numSlots];
		int numFrees = 0;
		for(int i = 0; i < numSlots; i++) {
			if(extractSlot(schedule, i) == 0 && !desiredSlots[i]) {
				freeSlots[numFrees] = i;
				numFrees++;
			}
		}
		if(numFrees == 0) {
			return -1;
		} else {
			int i = random.nextInt(numFrees);
			return freeSlots[i];
		}
	}