rudimentary semantic checking done