Abstracted the templating engine to it's own object