more defensive varargs handling