refactored GridView to have clear separation between value and content