BF: separate copy function