building out compiler