spec'ing out the api