moved parsers out of large if block