add ex 2.17
add ex 2.18
add ex 2.19
add ex 2.20