this is second version commit by songzy@primeton.com