working on semantics