Тут не хватает метода copy(), который бы сам разобрался, что куда он копирует.