Made more idiomatic using ViewSets.  Added some docstrings.