restructure part1