first draft of the semantic api