ensure workspace is cached

this check seems a bit odd. Probably we'd want this to fail if it already exists?