Exercise 4.55 ~ 4.56