better structure for layout