exercise 1.30 ~ 1.39