Automaton now with separate data types for their input and outputs