Author FrankYueh  Date 2008/04/15  Modified 2010/11/27