parser with tests