public static void assignHall() {
		initStuIDVec();

		for (int i = 0; i < DiningRoom.size(); i++) {
			Table thisTable = new Table((Table) DiningRoom.get(i));
			thisTable.reset();
		}

		Integer startTableNum = new Integer(R.nextInt(27)); // pick a random
															// starting table

		unAssignedStudents = AssignAllFrosh(unAssignedStudents, startTableNum);
		unAssignedStudents = AssignOneClass('1', unAssignedStudents, startTableNum); // assign upperclassmen
		unAssignedStudents = AssignOneClass('2', unAssignedStudents, startTableNum); // one per table
		unAssignedStudents = AssignOneClass('3', unAssignedStudents, startTableNum);

		unAssignedStudents = shuffle(unAssignedStudents);

		String thisStuID = new String();
		int tableIndex = startTableNum.intValue();
		System.out.println("AssignHall" + tableIndex);

		while (unAssignedStudents.size() > 0) { // Just use the first index since the vector is shuffled
			thisStuID = (String) unAssignedStudents.get(0);
			assignStudent(tableIndex, thisStuID);
			unAssignedStudents.remove(0);
			tableIndex = (tableIndex + 1) % 27;
		}

		// update table screen
		if (!savedAction.equals(""))
			showTableInfo(savedAction); // most recent table click saved here

		System.out.println("done!");
	}