added lrucache with unit tests