changed settings cache to use hashCode