works through section 4.1.2