adding zoom and better redraw