Cleaned up some logic, added some error handling and started logging things.

Added Exceptions for when the Dispatcher can't find what it needs.
Logging is a little more robust, and code should be cleaner.