add good API documentation