finish Exercise 2.7~13