all done and ugly :)

Good use of a default initializer and assignment.