Value objects in Ruby