another iteration of Component redesign