Further fleshing out with Variants and a special subtype