update event driven