update by billchen1977