Author: Cheng, Guoqiang.