components restructured