more compiler structure work