Exercise 4.32 ~ 4.33