Change structure and OO reusing again

although it cannot load the screen, you can find that the structure has
hugely changed