anchor.diff:      _body = new List<Point>.generate(START_LENGTH, (int index) => new Point(i--, 0));
     }
   
  +  Point get head => _body.first;
  +
     void _draw(CanvasRenderingContext2D ctx) {
       // starting with the head, draw each body segment
       for (Point p in _body) {
  -      drawCell(ctx, p, "green");
  +      drawCell(p, "green");
       }
     }
   
  
positive.code:     _move();
      _draw(ctx);
    }
  
    Point get head => _body.first;
  }
  
  class Keyboard {
  
negative.code: }
  
  class Snake {
    static const Point LEFT = const Point(-1, 0);
    static const Point RIGHT = const Point(1, 0);
    static const Point UP = const Point(0, -1);
    static const Point DOWN = const Point(0, 1);
  
    static const int START_LENGTH = 6;
  
    List<Point> _body;        // coordinates of the body segments
    Point _dir = RIGHT;       // current travel direction
  
    Snake() {
  