anchor.diff:  var touchListener;
   // static cache draw
   startStatic(int startx, int starty) {
  -  pixels = [];
     pixels.add(new Point(startx, starty));
     
     touchListener = background.onMouseMove.listen((e) {
  
positive.code: drawStatic(int toX, int toY) {
    pixels.add(new Point(toX, toY));
    document.querySelector('#points').text = "Points: ${pixels.length.toString()}";
    // cache pen to canvas
    if(pixels.length>1000){
     endDraw();
     startStatic(toX, toY);
  
negative.code: }
  
  endDraw() {
   pixels = [];
   document.querySelector('#points').text = "Points: ${pixels.length.toString()}";
    canvasBitmapData.draw(penCanvas);
    penCanvas.graphics.clear();
    touchListener.cancel();
  