ensure workspace is cached

let's make this configurable with a parameter you can pass to `destroy()`. Happy to do that in a bit.