Fix shared_ptr badness, due to not returning by reference, but there is still a double delete at the end, see GameEventManager.h comment for details