Trap passing

Why do we need to clone?

It might be better performance-wise to move the pointer over and then just edit the data inside the pointer.

We are, after all, GC-bound so creating more objects than necessary may be a bad idea.