Added lots of comments
minor markup changes