Adding missing doc comments for all exported types

As mentioned in #221, we need to document all of our exported types, functions and methods.
:+1: for the example code. I should add more to my stuff...