hlim10 lchen59 : merged version of US4 and US5