refactoring: SettingsController introduced to separate BL from GUI