Adding a 'moving' parameter to the instantiate method...
don't double-allocate mutable movable types