Written by Fu-Kwun Hwang
Edited by Loo Kang WEE and Wolfgang Christian
Modified by myself