solve exercise 30.19