anchor.diff:    static Duration inBetweenCleans = new Duration(days: 7);
     static Duration maxAgeCacheObject = new Duration(days: 30);
     static int maxNrOfCacheObjects = 200;
  +  static bool showDebugLogs = false;
   
     static CacheManager _instance;
     static Future<CacheManager> getInstance() async {
  
positive.code: 
    ///Get the file from the cache or online. Depending on availability and age
    Future<File> getFile(String url) async {
      if (!_cacheData.containsKey(url)) {
        await synchronized(_lock, () {
          if (!_cacheData.containsKey(url)) {
  
negative.code:       var cachedFile = new File(filePath);
        var cachedFileExists = await cachedFile.exists();
        if (!cachedFileExists) {
          log = "$log\nDownloading because file does not exist.";
          _cacheData[url] = await downloadFile(url, path: filePath);
  
          log = "$log\Cache file valid till ${_cacheData[url].validTill.toIso8601String()}";
          return;
        }
        //If file is old, download if server has newer one
        if (cacheObject.validTill == null ||
            cacheObject.validTill.isBefore(new DateTime.now())) {
          log = "$log\nUpdating file in cache.";
          var newCacheData = await downloadFile(url,
              path: filePath, eTag: cacheObject.eTag);
          if (newCacheData != null) {
            _cacheData[url] = newCacheData;
          }
          log = "$log\nNew cache file valid till ${_cacheData[url].validTill.toIso8601String()}";
          return;
        }
        log = "$log\nUsing file from cache.\nCache valid till ${cacheObject.validTill.toIso8601String()}";
      });
  
      //If non of the above is true, than we don't have to download anything.
      _save();
      if(showDebugLogs)
        print(log);
      return new File(await _cacheData[url].getFilePath());
    }
  
  