I can see why you have done this now, however I am concerned over this type of thing, causing issues when API changes of various objects are concerned..  Not that I see a way around it!
example:
```Python

ObjectA(object):
    __init__(self, ObjectB, ObjectC):
    __copy__(self, memo):
        ObjectA(ObjectB(initialisation_parameters), ObjectC(initialisation_parameters))
```

Looks like maintenance issues to me.

what do other people think?