finished the API, again