Implemented DFA component. Created DFAFactory to create default dfas.

TODO:
-finish DFAFactory.