update workspace to implement retrieve, add error checking