polishing, included Yizhi's updates