Add basic caching
Beginning of LRU cache
Various improvements. Still really early.