contract ApprovalContract is CompanyAccessControl {
    // Approver who are approved to launch a company a particular name
    // the bytes32 hash is the hash of the company name!
    mapping(bytes32 => address) public approvedToLaunch;
    
    // Make sure that we don't add two companies with same name
    mapping(bytes32 => bool) public registredCompanyNames;
    
    // Approve addresses to launch a company with the given name
    // Only ceo or cfo can approve a company;
    // the owner who launched the company would receive 90% from the sales of
    // shares and 10% will be kept by the contract!
    function addApprover(address _owner, string _companyName) 
    onlyCLevel
    whenNotPaused
    external {
        approvedToLaunch[keccak256(_companyName)] = _owner;
    }
}
function addApprover(address _owner, string _companyName) 
onlyCLevel
whenNotPaused
external {
    approvedToLaunch[keccak256(_companyName)] = _owner;
}

// Approve addresses to launch a company with the given name
// Only ceo or cfo can approve a company;
// the owner who launched the company would receive 90% from the sales of
// shares and 10% will be kept by the contract!