restructuring app based around 'component' sectional principle