work on semantics