completed ex 2.17, 2.18