add update setting functionality