added restructure