added caching for fingerprint search