Synchronize event dispatch.
Ensure any object for state.
Seperate out queue event dispatch logic.
Add logger.
Document and test subscribers.
Use logger to log exception.
Test transition inspect.