working on the assignment operator