Plan of attack: - 1 MemPool per thread (using thread local storage) - If a MemPoolRef value passes between two different thread MemPools than make a copy of that value in the target MemPool.