hooked up all the logic for persisting changes to a users settings