a slew of tiny changes and fixes as per code review
properly validate settings on save