added a bunch of comments