add EngineSystemEvent and listeners