Add argument unpacking def factory