Rewrote property caching to be less discriminatory