restructure framework