first draft of semantics