more semantic rules