modify by LvChengbin