broke up the widgets into their own functions