completed ex 2.7, 2.8, 2.9