DFA

* indicates required