add lots of comments to code