I added some documentation. Let me know what you think.  I was not sure how verbose to be.