public TMSimulator(Automaton automaton) {
		super(automaton);
		if (!(automaton instanceof TuringMachine))
			throw new IllegalArgumentException(
					"Automaton is not a Turing machine, but a "
							+ automaton.getClass());

//       //MERLIN MERLIN MERLIN MERLIN MERLIN// //this code is only for show, it should be moved into a setting with a better UI before release//
//        AcceptanceFilter[] choices = new  AcceptanceFilter[] {new AcceptByHaltingFilter(), new AcceptByFinalStateFilter()};      
//        
//        List<AcceptanceFilter> tlist = new ArrayList<AcceptanceFilter>();
//        for (int i = 0; i < choices.length; i++){
//            int res = JOptionPane.showConfirmDialog(null, "Would you like to " + choices[i].getName()+ "?", "Confirm use of this acceptance criteria", JOptionPane.YES_NO_OPTION);
//            if (res == JOptionPane.YES_OPTION) tlist.add(choices[i]); 
//        }
//
//        if (tlist.size() == 0)
//            JOptionPane.showMessageDialog(null, "Will reject all inputs eventually, if you choose to persist with this.", "Warning", JOptionPane.WARNING_MESSAGE);
//
//       //END MERLIN MERLIN MERLIN MERLIN MERLIN// //this code is only for show, it should be moved into a setting with a better UI before release//

          
        List<AcceptanceFilter> tlist = new ArrayList<AcceptanceFilter>();
        
        if (Universe.curProfile.getAcceptByFinalState()) tlist.add(new AcceptByFinalStateFilter());
        if (Universe.curProfile.getAcceptByHalting()) tlist.add(new AcceptByHaltingFilter());


        myFilters = tlist.toArray(new AcceptanceFilter[0]);
	}