api implementation