copyright (C) 2004-2005 Dongxiao Zhu 