add ability to select different locations and add a preference manager to save the selected location