Author: Zheng, Naiguang.