protected function unserialize($parsedFiles) {
    if (!$this->isModified() && ($cacheFile = $this->getSerializeFilename($parsedFiles)) && file_exists($cacheFile)) {
      $parsedFiles[] = __FILE__;
      if (!$this->checkFileDate($parsedFiles, $cacheFile)) {
        $vars = unserialize(file_get_contents($cacheFile));

        // check if included ini files were updated since last cache time
        $includes = $vars['containedFiles'];
        if (is_array($includes)) {
          if ($this->checkFileDate($includes, $cacheFile)) {
            return false;
          }
        }

        // everything is up-to-date
        foreach($vars as $key => $val) {
          $this->$key = $val;
        }
        return true;
      }
    }
    return false;
  }