First commit with most of the API and API docs.