update by zj third