change a few semantics