reduced visibility of value object implementations and exposed value object factories