refactored html structure for more DRY and semantic modeling