maintain semantics