more work on compiler