Restructure compile