fixed event listening