refactor header component and add section component