no need for the function overhead