public override double?performOperation(ICalculationOperation operation)
        {
            CalculationOperation.SecondArgument = operation.SecondArgument;
            CalculationOperation.Operation();
            double result = CalculationOperation.Result.Value;

            calculatorUser.CalculatorHistory?.AddToHistory(CalculationOperation);
            if (!(operation is EqualsOperation))
            {
                operation.FirstArgument = CalculationOperation.Result;
                CalculationOperation    = operation;
                reset = true;
            }
            else
            {
                calculatorUser.CalculatorState = new InitialCalculatorState(calculatorUser);
            }
            return(result);
        }