added var name arg, def as null
generic overloaded to take list