a few semantics rules