added a ton of comments