Author: Nguyen-van-Hao.