typedef the internal function pointer type