add lots and lots of comments.