factored out workSpaceManager