fixed listener callback