now repainting only happens specifically for elements that request it. No more drawing the whole UI 30 times a second!