final restructure