Exercise 3.12 ~ 3.14