Abstract `template` module as an external dependency.
Update testing code.
Merge pull request #39 from zpbx/template

Abstract `template` module as an external dependency.