重构  update