maybe
emit start|push|pop|end events