added isCached() method