Changed Caching to not rely on object HashCode