Templatize everything