tailored code to the four parts