Exercise 2.81 ~ 2.82