first cut of the api complete