Re-writing UniquePointer and Handle types