interesting that you can pass nullable as a positional param here  but the way you have done a number of the subclasses it can only be passed as a kwarg param suggestes doing def init self kwargs self  nullable kwargs pop  nullable false here even though i hate that 