first draft of the public API