solve exercise 15.1