Exercise 2.21 ~ 2.23