[wip] value object