updated solution to Exercise 2.1