finish writing part of compiler