anchor.diff:        case KeyCode.SHIFT:
           break;
         case KeyCode.BACKSPACE:
  -        if (_currentposition > 0) {
  -          currentposbackward();
  +        if (this._currentposition > 0) {
  +          this.currentposbackward();
             break;
           }
           break;
  +      default:
  +        this.currentposforward();
  +        var te = querySelector('#test');
  +        te.text = 'Typed: ' + k.charCode.toString() + this.currentposition.toString();
       }
     }
   }
  
positive.code: 
    int currentposbackward() => _currentposition--;
  
    String charAtPosition() => targettext.split('')[_currentposition];
  
    set errors(int n) => _errors = n;
  
  
negative.code:   var tr = new Trainer(target);
    var input = querySelector('#tarea');
    input.onKeyUp.listen((e) {
      if (tr.currentposition < target.length) {
        tr.handleKeyEvent(e);
      }
    });
  