Add `Printer`
Merge pull request #24 from gongo/refactoring_template_and_printer

Add `Printer`