Completed section 9.2.8 (72 examples passing)