most protocol internal caches do not need to be exposed. this reduces the public API and allows us to more easily improve/change this during a release cycle
Unified order creation/copy/delete to avoid memory leaks.