Exercise 1.15 ~ 1.18