variadic template factory