Author: Ng, Tze-ming, Peter.