add lots of comments