Constructors, assignment operator, += operator