Exercise 1.19 ~ 1.20