staging the function