broke out parts into the routes and the widget