update by shaojing