Looks like we should have only one instance of ApplicationEventManager, right? maybe it's worth making ia a singleton, which would help in solution #1