update by zj 12