refactored out the ValueSpace construct