VariantBuilder (for initial review)

(and in general anything you "get" out of a Variant should be passable to the corresponding "set" method in the builder)