apply function directly unpacking argument list