restructure to keep the InstrList as the basic unit