Calls to ConfigurationPropertyName equals and hashCode methods are called a lot and performance could be improved by exiting early if the toString() is identical. We can also exit early if the hashCode doesn't match and we can move element hashcode generation into Element so that it can be cached.