this simplifies a lot of functions, and removes a lot of potential errors when using the function. You now only check whether the return value is null, and if it's not, you have a valid, reference-counted, client pointer.