fixed repeated event firing