add type environment support, and the ability to skip type checking