redraw only when there's data