Exercise 2.12 ~ 2.13