Result caching implemented (localstorage, or cookies) with 30s expiry