bline parser
rewrite so that regexp and naming logic is next to each other, and parser is separate
clean up parser and add better origin parsing
more tests