Author: Cheng, Guoqing.