Went through and added a bunch of comments