working with semantics