copy-on-write added