reestructure compiler