start of intermediate code gen