exception if cache doesnt confirm to protocol
update example project
bugfix, use self.cache, not shared