improve public API, document