return pointer instead of store-in-pointer argument