Homework 251 Submission - Greg White (gaw3)

* Implement use cases, requirements & features described in the
assignment document.