Exercise 2.70 ~ 2.72