the part that's not obvious to be from looking at it is what exactly the semantics of `subset` is in this class and its subclasses.