public HashSet[] getDisjointSets(Automaton automaton) {
		ArrayList list = new ArrayList();
		STATES_IN_A_SET = new ArrayList();

		while (!accountedForAllStates(automaton)) {
			State state = getUnaccountedForState(automaton);
			HashSet set = getSetIncludingState(state, automaton);
			accountForStates(set);
			list.add(set);
		}
		return (HashSet[]) list.toArray(new HashSet[0]);
	}