Document public functions, add typespec, make private functions private
Merge pull request #7 from lsimoneau/documentation

Document public functions, add typespec, make private functions private