factored out private "copyTo"