modularized part2 first-half