Author: Shaohong.