Implement ch3.5.4's examples (in progress)