anchor.diff:  void handleKeyPress(KeyboardEvent event, GameState gamestate) {
     switch (event.keyCode) {
       case 37: //left
  -      stepCount -= 1;
  +      gamestate.stepBy(-1);
         break;
       case 38: //up
  -      stepCount = 1;
  +      gamestate.step(gamestate.moves.length);
         break;
       case 39: //right
  -      stepCount += 1;
  +      gamestate.stepBy(1);
         break;
       case 40: //down
  -      stepCount = gamestate.moves.length;
  +      gamestate.step(1);
         break;
       default: return;
     }
  -  gamestate.step(stepCount);
     render(gamestate);
   }
   
  
positive.code: }
  
  void setupSGF(String sgf, GameState gamestate) {
    stepCount = 1;
    var gameEvents = SGF.parseSGF(sgf);
    gamestate.initialize(gameEvents);
    gamestate.step(stepCount);
    render(gamestate);
  }
  
  void showNextMove(GameState gamestate) {
    stepCount += 1;
    gamestate.step(stepCount);
    
    render(gamestate);
  }
  
  void showPreviousMove(GameState gamestate) {
    stepCount -= 1;
    gamestate.step(stepCount);
    
    render(gamestate);
  }
  
  void showFirstMove(GameState gamestate) {
    stepCount = 1;
    gamestate.step(stepCount);
    
    render(gamestate);
  }
  
negative.code: import '../lib/gamemodel.dart';
  import '../lib/rules.dart';
  
  var camera = new Camera();
  
  void main() {
  