Author: Cheng, Shiguang.