public void configureNondetMooreMachine(NondetMooreAutomaton automaton) {
    	final StateMachine machine = new StateMachine();

    	final SimpleState[] statesArr = new SimpleState[automaton.stateCount() + 1];
		for (int i = 0; i < automaton.stateCount(); i++) {
			statesArr[i] = new SimpleState(String.valueOf(i), false);
		}
		final SimpleState nondetInit = new SimpleState("nondet_init", true);
    	
		for (int i = 0; i < automaton.stateCount(); i++) {
			if (automaton.isInitialState(i)) {
				final StateTransition out = new StateTransition("", statesArr[i]);
				Arrays.stream(automaton.state(i).actions().getActions()).forEach(out::addAction);
				if (!verifyFromAllStates) {
					nondetInit.addOutgoingTransition(out);
				}
			}
		}
		machine.addState(nondetInit);
		for (int i = 0; i < automaton.stateCount(); i++) {
			final MooreNode currentState = automaton.state(i);
			for (MooreTransition t : currentState.transitions()) {
				final StateTransition out = new StateTransition(
                        extractEvent(t.event()), statesArr[t.dst().number()]);
				Arrays.stream(t.dst().actions().getActions()).forEach(out::addAction);
				statesArr[i].addOutgoingTransition(out);
				if (verifyFromAllStates) {
					nondetInit.addOutgoingTransition(out);
				}
			}
			machine.addState(statesArr[i]);
		}
		this.machine = machine;
    }