all the styling and logic so far