update by zj 3