draft of the API