added api implementation + api design