double linked list, simple lru cache