moved parser to it own module