maybe create a Renderer to render template.
maybe create an interface for template engine.