Exercise 20, getting interesting finally