Author: Gu, Jinhai.