Exercise 3.41 ~ 3.42