more refactoring.  COpy is badly broken