Author frankyueh  Date 2009/12/30  Modified 2010/11/27