including deep clone steal function