Copy improvements

A few improvements are also useful for my original project. I had wished you had created a pull request with this ;)
Better than my original solution