Exercise 2.14 ~ 2.16