use template instead of virtual function call
add usings
used ParserFile