Commit ch1_2, ch1_3 and ch1_4.