Perhaps this would solve your problem:
You would still have to wrap your objects at the time of construction. But there would be no need to redefine methods.