Author: Yang, Guangliang.