Changed repaint strategy: introduced needs_update