framework restructure