adding typeclass Automaton & FiniteAutomaton