Mirror instead invoke dynamic, since uses less memory and cpu
Merge branch 'ot-noinvokedyn' into ot-work