subsets and sigma types more