re #2 - add basic markup and logic on client side