use ProgramSetting model to assert necessary settings are set
side effect of refactoring the KeywordComponent