add exercise 2.21
add exercise 2.23