assignment through *this