caching and linked list