persistent object update