Author: Foo Gaik Sim.