Realistically, there should only be a single event manager for each run of the library.
Making this a singleton will simplify the code, since we don't have to pass it to methods.
Also, this will make it easier for any method to do logging, since we don't need to change
the method signature and pass in the EventManager.
Realistically, there should only be a single event manager for each run of the library.
Making this a singleton will simplify the code, since we don't have to pass it to methods.
Also, this will make it easier for any method to do logging, since we don't need to change
the method signature and pass in the EventManager.