changed semantics and rules