Implementing more API and tests
Finishing up API and tests.
Finishing documentation