Added a ton of comments, did a bunch of work!