refactor to Workspace the ONLY global singleton state