refactoring for GAIEvent