Add value semantics and range algos