lots of work on the compiler
small fixes to semantics