deep copy for any data