fleshing out the basis of the API