api implementation exercise