Проблема с Eventlistener

Пишу калькулятор.

На первом функции все работает хорошо, но когда вызывает вторая функция слушатель срабатывает два раза.
Как это можно решить или написать по другому?

const buttons = document.querySelectorAll('.button')
const screen = document.querySelector('#screen')
let value1, value2
buttons.forEach(el => {
    el.addEventListener('click', () => {
        if (!isNaN(Number(el.innerHTML))) screen.value += el.innerHTML
        value1 = Number(screen.value)
        if (el.innerHTML === 'C') screen.value = ''
        switch (el.innerHTML) {
            case '+':
                operation(value1, '+')
                break
            case '-':
                operation(value1, '-')
                break
            case '*':
                operation(value1, '*')
                break
            case '/':
                operation(value1, '/')
                break
        }
    })
});

function operation(value1, operator) {
    buttons.forEach(el => {
        screen.value = ''
        el.addEventListener('click', () => {
            if (!isNaN(Number(el.innerHTML))) screen.value += el.innerHTML
            value2 = Number(screen.value)
            if (el.innerHTML === 'C') screen.value = ''
            if (el.innerHTML === '=') {
                if (operator === '+') console.log(value1 + value2)
                else if (operator === '-') console.log(value1 - value2)
                else if (operator === '*') console.log(value1 * value2)
                else if (operator === '/') console.log(value1 / value2)
            }
        })
    });
}

Ответы (0 шт):