Document initial api

The plan is to document the initial api methods and use the PR to get everyone's feedback on how the api should look before starting on the implementation.