* removed the end_of_assignment flag
* instead I pass the arguments to the assignment operators by reference
* everytime you write a method that take smart pointers as arguments they MUST be passed by reference