Author: Ningzi.