public override void Execute()
        {
            base.Execute();
            if (Executed)
            {
                throw new InvalidOperationException("The transfer transaction has been already attempted");
            }

            if (_amount > _fromAccount.Balance)
            {
                throw new InvalidOperationException("Insuffiecient funds!");
            }

            _withdraw.Execute();

            if (_withdraw.Success)
            {
                _deposit.Execute();

                if (!_deposit.Success)
                {
                    _withdraw.Rollback();
                }
            }

            base.setExecute();
        }