_rect.top);
            polynomial_draw(e.clientX - canvas_rect.left, e.clientY - canvas_rect.top, false); // double work
        }
    }, false);

    polynomial.addEventListener('mousedown', function(e){
        var canvas_rect = polynomial.getBoundingClientRect();
        polynomial_xs[polynomial_i] = client_to_x(e.clientX - canvas_rect.left);
        polynomial_ys[polynomial_i] = client_to_y(e.clientY - canvas_rect.top);
        polynomial_draw(e.clientX - canvas_rect.left, e.clientY - canvas_rect.top, 