anchor.diff:      return;
     }
     bench = new Bench(parsedGame.player1, parsedGame.player2);
  -  selectedPiece = null;
  +  selectionState.clear();
     gamestate.initialize(parsedGame.gameEvents);
     gamestate.step(1);
     render(gamestate);
   }
   
   void showNextMove(GameState gamestate) {
  -  selectedPiece = null;
  +  selectionState.clear();
     gamestate.stepBy(1);
   
     render(gamestate);
   }
   
   void showPreviousMove(GameState gamestate) {
  -  selectedPiece = null;
  +  selectionState.clear();
     gamestate.stepBy(-1);
   
     render(gamestate);
   }
   
   void showFirstMove(GameState gamestate) {
  -  selectedPiece = null;
  +  selectionState.clear();
     gamestate.step(1);
   
     render(gamestate);
   }
   
   void showLastMove(GameState gamestate) {
  -  selectedPiece = null;
  +  selectionState.clear();
     gamestate.stepToEnd();
   
     render(gamestate);
  
positive.code: 
    List<Move> moves = [];
    Piece clickedPiece = gamestate.pieceAt(coordinate);
    if (clickedPiece == selectedPiece) {
      selectedPiece = null;
    } else {
      selectedPiece = clickedPiece;
    }
  
    render(gamestate);
  }
  
negative.code: }
  
  void handleKeyPress(KeyboardEvent event, GameState gamestate) {
    selectionState.clear();
  
    switch (event.keyCode) {
      case 37: //left
  