new method and restructuring