added more semantic rules 2