this is *all* the functionality we currently have in the Variant class :)