finish bulk of ch2 common code, add sts