update by zj four