add styling and functionality