added LRU cache code