introduce LineParser