lots of work on new type checker