Author: Zhang, Baoquan.