I think your containment suggestion is sage - there is a complication with respect to the interfaces that are wanted to be exposed (there will inevitably be methods defined which just call the contained object). In general, I'm not in favour of changing this in this PR - the PR is about getting a bug fixed which will make a user's code work (which it does successfully) not about a full design review of this module.

I actually think there is an awful lot in this module which can be massively improved, and will only be done when somebody gets some time to look at it properly, in the meantime, I'm happy to address the concern about using the private method (I think we discussed exposing a second interface which the parent class uses, only doing it more explicitly than pre-pending a ```_```).

Does that sound reasonable?