Basic lrucache

modified from Jay Hutchinson github