new layout and data structure
fix to layout