some changes to Variant