refactor SuiteListener