The first thing I noticed is that operator = is returning an object
by value. You should return by reference.