public Tffst toSingleInputLabelTransitions() {

	Tffst simpleTffst = new Tffst();
	HashMap<State, State> m = new HashMap<State, State>();

	State last;
	Set<State> states = getStates();

	for (State s : states) {
	  
	  System.out.println(s.toString());
	  
	  if (m.get(s) == null) {
		last = new State();
		m.put(s, last);
		last.accept = s.accept;
		if (s == initial)
		  simpleTffst.initial = last;
	  } else {
		last = m.get(s);
	  }
	  
	  for (Transition t : s.getTransitions()) {

		if (m.get(t.getTo()) == null) {
		  State newTo = new State();
		  m.put(t.getTo(), newTo);
		  newTo.accept = t.getTo().accept;
		  if (t.getTo() == initial)
			  simpleTffst.initial = t.getTo();
		}

		Transition lastTran = new Transition(last, new TfString(t.labelIn), new TfString(t.labelOut), m.get(t.getTo()));

		while (lastTran.getLabelIn().size() > 1 ) {
		  last = lastTran.getFrom(); 
		  State ns = new State();
		  lastTran.setFrom(ns);
		  if (lastTran.getLabelIn().size() > 1 ) {
			new Transition(last, new TfString(lastTran.getLabelIn().remove(0)), new TfString(SimpleTf.Epsilon()), ns);
		  } 
		}
	  }
	}

	return simpleTffst;
  }