Dear lord, we've got to use a better pattern for initializing workspaces.  This is too much.  I'm sure it took ages to figure out which parameter was which.  Why not pass the `WorkspaceHeader` directly?   