added explanation of parse_line