private void sortTuts() {
		ArrayList<Timeslot>overfilledTuts;

		for(Student s: students){
			if(!s.getFlaggedForTuts()){
				s.setAssignedTut(s.getCombinedTuts().get(0));
				s.getCombinedTuts().get(0).addStudent(s);
			}
		}
		Student currentStudent;
		overfilledTuts=overFilledTuts();

		while(!overfilledTuts.isEmpty()){
			for(Timeslot t: overfilledTuts){
				for(int i=t.getPreferredMax();i<t.getAssigned().size();i++){
					currentStudent=t.getAssigned().get(i);
					if(currentStudent.getCurrentIndexTuts()+1<currentStudent.getCombinedTuts().size()){
						currentStudent.getCurrentTut().removeStudent(currentStudent);
						currentStudent.incrementIndexTuts();
						currentStudent.getCurrentTut().addStudent(currentStudent);
						currentStudent.setAssignedTut(currentStudent.getCurrentTut());
					}
					else{
						if(currentStudent.getAssignedTut()!=null){
							currentStudent.getAssignedTut().removeStudent(currentStudent);
							currentStudent.setAssignedTut(null);
						}
						currentStudent.setFlaggedForTuts(true);
						if(!flagged.contains(currentStudent)){
							flagged.add(currentStudent);
						}
					}
				}
				overfilledTuts=overFilledTuts();
			}
		}

	}