solve exercise 30.20