Add new copy paths

As part of this I've simplified the code paths.