Exercise 5.20 ~ 5.21