Added functions to implement a basic LRU cache