Added canon specific event bus. This was necessary because I couldn't
gaurantee the order in which the handlers would be called. Sometimes the
tests passed, sometime they didn't.