Added in the majority of the api and documentation.