Exercise 2.20 added