added exercise 2.67~2.69