let's get away from that repaint() thing, shall we?