public void configureDetMealyMachine(MealyAutomaton automaton) {
    	final StateMachine machine = new StateMachine();

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