public CalcViewModel()
        {
            _model = new CalculatorModel();

            this.AddSymbolCommand = new Command<string>(symbol =>
            {
                //for first button press
                if (string.IsNullOrEmpty(displayString))
                {
                    if (char.IsDigit(symbol[0]))
                    {
                        DisplayString += symbol;
                        return;
                    }
                    else
                        return;

                }
                //constraint for input only two numbers and action symbol
                if (!char.IsDigit(symbol[0]) && symbol != "." && CommandIsFull(displayString))
                    return;

                char lastSymbol = GetLastSymbol(displayString);
                //check point enter
                if (symbol == "." && !CanAddPoint(displayString, lastSymbol))
                    return;

                //check re-enter mathoperator
                else if (!Char.IsDigit(symbol[0]) && !CanAddMath(displayString, lastSymbol))
                {
                    DisplayString = ReplaceLastSymbol(displayString, symbol);
                    return;
                }

                DisplayString += symbol;

            });

            this.RemoveLastSymbolCommand = new Command(obj =>
            {
                if (!string.IsNullOrEmpty(displayString))
                    this.DisplayString = displayString.Substring(0, displayString.Length - 1);
            });

            this.ClearAllCommand = new Command(obj => { this.DisplayString = string.Empty; });

            this.CalculateCommand = new Command(obj =>
               {
               var result = _model.Calculate(displayString);
               if (result != null)
                   DisplayString = result.ToString();
               });
        }