refactored layout as column-based