Implement ch2.5.3's examples (done)