going to work on simplifying dispatcher for readability
cruft