yield copy to avoid overwrite