This is because `super(Tree, self).__init__()` will only call the first `__init__` in the MRO, but in this case multiple `__init__`s need to be called to fully init the object.