Exercise 2.7 ~ 2.9