added structure for components