fixed event dispatch