finish revising draw_line