main component restructure part 2