reduced listeners

instead of adding a listener per cell, adding just one listener to the canvas
causes the same effect and reduces the memory consumption a lot