Author: Cai, Shangzhong.