Author: weng fong and maxwell k.hearn