flesh out the rest of the API