add enhancements to compiler and interpreter