how come you went for this instead of namedtuple subclasses?