Modified the operator= and added a swap method and a default constructor as well as a copy constructor for a more idiomatic class definition.