add variadic fn