Added some in-line documentation and some more examples