this code was written as part of a school project. The main focus was to learn, the code quality may be uneven and there are definitely some rough edges. Given the nature of the projects, and the diminishing returns of polishing up a project when it comes to learning opportunities, I do not intend to go back over this code.