Merge with Zhixing's changes