Exercise 2.61 ~ 2.62