fold IconFactory into SettingsNode, since all of its functions should be private to SettingsNode