restrcutre code