Copy on write

CopyOnWrite changes to stop making as many copies.