Completed Section 9.3 closes #26