Author: Chen Zhiguang.