Author: Tien Hai.