more api implementation