Use a better structure for components