```\nfunction setOperatorStrategyCap(\n        RioLRTOperatorRegistryStorageV1.StorageV1 storage s,\n        uint8 operatorId,\n        IRioLRTOperatorRegistry.StrategyShareCap memory newShareCap\n    ) internal {\n        . \n        // @review this "if" will be executed\n        -> if (currentShareDetails.cap > 0 && newShareCap.cap == 0) {\n            // If the operator has allocations, queue them for exit.\n            if (currentShareDetails.allocation > 0) {\n                -> operatorDetails.queueOperatorStrategyExit(operatorId, newShareCap.strategy);\n            }\n            // Remove the operator from the utilization heap.\n            utilizationHeap.removeByID(operatorId);\n        } else if (currentShareDetails.cap == 0 && newShareCap.cap > 0) {\n            // If the current cap is 0 and the new cap is greater than 0, insert the operator into the heap.\n            utilizationHeap.insert(OperatorUtilizationHeap.Operator(operatorId, 0));\n        } else {\n            // Otherwise, update the operator's utilization in the heap.\n            utilizationHeap.updateUtilizationByID(operatorId, currentShareDetails.allocation.divWad(newShareCap.cap));\n        }\n        .\n    }\n```\n