Ooh, we'll have to look deeper to see if there are any flaws with the way I have done it. 
I'll update it to use `const Ptr<RCP<const Basic>> &x`. 
This will need some refactoring at quite a few places.