Dirt simple cache system - right now caching is triggered by a render - I'd like to move this into an independent pipeline.