classless scheme, with tests for both the underlying call and then how it
should work if ->method can be overloaded.
I called the overload type 'invoke_method' but I am not too concerned with
what it's called, as long as it works!
In the data block of the code is an example of what the code could look like if
written natively, instead of having the calling abstracted out.