revised helper() and operator+()