I think the copy constructor and assignment operator should use the same underlying code, and this is doubly true now that you've added more code to these methods. Could you fix up please?