Add lots of API documentation