finish 7.6.1
finish exercise 7.6.2
finish exercise 7.6.3
finish exercise 7.6.4