make some progress on the api