Parser should be passed on constructor, consider a static create method as a factory if you want