heavily restructured main component