refactor eventManager.fire method