Added a ton of comments.  Still needs more, but it's a start