TemplateParser refractored.
TODO: Test it