docs and API design