added some input validation to Picker.update()