modify restructure_principle