This test should be:
```
if self.flags and not isinstance...
```
to also apply this check when a subclass has overridden the attributes, and no arguments are provided to init.