assignment operator, Copy Constructors and Assignment Operators