Refacoring copy methods