update event generation now uses the diff tree