improve the api
improve the api