We have a number of places where hostcall handles (a uint32) are wrapped in structs, which are then returned as pointers to the SDK, which are then wrapped in structs and returned as poiters to the users of the SDK. This results in potentially more small allocations, when we could probably get away with having value types which can live on the stack or in registers.