API implementation