def add(self, name: str, sig: Tuple, obj: object) -> None:
        """
        Add a file to the cache
        :param name: name of the object to be pickled
        :param sig: signature for object
        :param obj: object to pickle
        """
        if self._cache_directory is not None:
            if name in self._cache:
                os.remove(os.path.join(self._cache_directory, self._cache[name].loc))
            fname = os.path.join(self._cache_directory, str(uuid.uuid4()))
            with open(fname, 'wb') as f:
                pickle.dump(obj, f)
            self._cache[name] = _PickleJar.CacheEntry(sig, fname)
            self._update()