modified by swinghu + husiwen @ 2013/9/19