implementing addition