dfa now operates on its own structures

- more efficient (less assoc access)
- removed unused method from state
refactored testing code

now much clearer (using call)
and less redundant

viewing works again (but many states look crazy)