Yes, I think you are correct in that I probably should have chosen the delegate pattern. Which I think is in reality aggregation, yes? Thanks for the help and the solution proposal:-)
Comment on Re^2: Overriding methods and Inheritance
Delegation isn't aggregation. Aggregation is taking many things and calling them by one name, like an array or hash. Delegation is taking one thing and using some other one thing to talk to it, often pretending the latter is the former (which would be more properly called decoration).
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?