Changed CacheManager to only have factory() as static method to allow passing object around