fix deep copy (wip)