contract Validator is Ownable, EmergencySafe, Upgradeable{

  mapping(address => bool) private valid_contracts;
  string public whoAmI;

  function Validator(string _whoAmI) public {
    whoAmI = _whoAmI;
  }

  /**
   * @dev adds validated contract
   * @param addr Address of contract that's validated
   */
  function add(address addr) public ownerOnly {
    valid_contracts[addr] = true;
  }

  /**
   * @dev removes validated contract
   * @param addr Address of contract to be removed 
   */
  function remove(address addr) public ownerOnly {
    valid_contracts[addr] = false;
  }

  /**
   * @dev checks whether contract is valid 
   * @param addr Address of contract to be ckecked
   */
  function validate(address addr) public view returns (bool) {
    return valid_contracts[addr];
  }
}
/**
 * @title Validator Contract
 * @dev validated that contract has been created through IXlegder
 */
function remove(address addr) public ownerOnly {
    valid_contracts[addr] = false;
  }
/**
 * @dev removes validated contract
 * @param addr Address of contract to be removed 
 */