moved parser declaration outside the boilerplate