Author: Zhang, Jin-hua.