improved redraw