construct a pre-registerd type using variadic functions