does not recompute the set on each repaint, so much faster now