actually invoke the function