Completed Assignment

This should contain a complete solution to the problem, including
relevant code comments.