```\n    function _addFounders(IManager.FounderParams[] calldata _founders, uint256 reservedUntilTokenId) internal {\n// rest of code\n\n                // Used to store the base token id the founder will recieve\n              uint256 baseTokenId = reservedUntilTokenId;\n\n                // For each token to vest:\n                for (uint256 j; j < founderPct; ++j) {\n                    // Get the available token id\n                    baseTokenId = _getNextTokenId(baseTokenId);\n\n                    // Store the founder as the recipient\n                    tokenRecipient[baseTokenId] = newFounder;\n\n                    emit MintScheduled(baseTokenId, founderId, newFounder);\n\n                    // Update the base token id\n                    baseTokenId = (baseTokenId + schedule) % 100;\n                }\n            }\n..\n\n    function _getNextTokenId(uint256 _tokenId) internal view returns (uint256) {\n        unchecked {\n          while (tokenRecipient[_tokenId].wallet != address(0)) {\n                _tokenId = (++_tokenId) % 100;\n            }\n\n            return _tokenId;\n        }\n    }\n```\n