implemented update_event