added design for lfu cache