Add error subclasses for each error code
Raise an argument error for unsupported call types
Actually, TypeError
Define ContextObject class/instance
Keep ivar reference to complex object instance
Store ComplexObject in a hidden ivar:

This avoids crashing everything when bad people doing weird things.
Update CHANGELOG