further api implementation