A smaller and more generic version of the caches and CacheFactory. Nice one :)