Added some more detailed comments.