In the end, only TargetInstanceProxy and ProxyObject needed adjustments, rest is either part of API, hence should be easily usable, or is obscure enough as it is.