switched from HTML table to canvase element, much faster