Documentation

First pass at method documentation.

I feel that the code is fairly self-explanatory but I'd like to provide
documentation for at least passed in options