function newPool(address poolFactory, uint160 poolOwner) external payable returns (address) {
        require(msg.value == registrationFee, "Incorrect registration fee");  // draft
        return _newPool(poolFactory, poolOwner);
    }
function attachPool(address pool, bytes32 secret) external {
// require PoolOwner is managed by msg.sender.
uint160 group = managerToGroup[msg.sender];
bytes32 hash = checkHash(keccak256(abi.encodePacked("attachPool", group, pool)));
groups[group].pool = pool;
delete commitsTimestamps[hash];
}