```\nfunction registerClaimer(address \_claimerAddress, bool \_enabled) override external onlyClaimContract {\n    // The name of the claiming contract\n    string memory contractName = getContractName(msg.sender);\n    // Record the block they are registering at\n    uint256 registeredBlock = 0;\n    // How many users are to be included in next interval\n    uint256 claimersIntervalTotalUpdate = getClaimingContractUserTotalNext(contractName);\n    // Ok register\n    if(\_enabled) {\n        // Make sure they are not already registered\n        require(getClaimingContractUserRegisteredBlock(contractName, \_claimerAddress) == 0, "Claimer is already registered");\n        // Update block number\n        registeredBlock = block.number;\n        // Update the total registered claimers for next interval\n        setUint(keccak256(abi.encodePacked("rewards.pool.claim.interval.claimers.total.next", contractName)), claimersIntervalTotalUpdate.add(1));\n    }else{\n        setUint(keccak256(abi.encodePacked("rewards.pool.claim.interval.claimers.total.next", contractName)), claimersIntervalTotalUpdate.sub(1));\n    }\n    // Save the registered block\n    setUint(keccak256(abi.encodePacked("rewards.pool.claim.contract.registered.block", contractName, \_claimerAddress)), registeredBlock);\n}\n```\n