solve exercise 30.04