implemented keyword search and cache feature