templated all the things