Author: Ouyang, Liang.