Finished project. Cleaned up code and added documentation.