added assignment operator