first draft of a new API