refactor and support use in browser
ensure Template gets prototype functions
ignore vim .swp files
use factory methods so invocations of `install` are independent