exercise 2.7,2.8,2.9