Added more documentation, cleaned up code, and removed minor bugs in preparation for pushing to the main branch