Move Wrap on the function execution
Allow a promise to be returned