fix on/watch semantics for end event