Author: Bu, Qinghua.