added exercise 3.33~3.37