Value Objects Explained with Ruby