Changed CacheManager to only have factory() as static method to allow passing object around
Added caching support
Update to abstract adapter