Type restructure