contract XcertCreateProxy is 
  Abilitable 
{

  /**
   * @dev List of abilities:
   * 2 - Ability to execute create. 
   */
  uint8 constant ABILITY_TO_EXECUTE = 2;

  /**
   * @dev Creates a new NFT.
   * @param _xcert Address of the Xcert contract on which the creation will be perfomed.
   * @param _to The address that will own the created NFT.
   * @param _id The NFT to be created by the msg.sender.
   * @param _imprint Cryptographic asset imprint.
   */
  function create(
    address _xcert,
    address _to,
    uint256 _id,
    bytes32 _imprint
  )
    external
    hasAbilities(ABILITY_TO_EXECUTE)
  {
    Xcert(_xcert).create(_to, _id, _imprint);
  }
  
}
/**
 * @title XcertCreateProxy - creates a token on behalf of contracts that have been approved via
 * decentralized governance.
 */
function create(
  address _xcert,
  address _to,
  uint256 _id,
  bytes32 _imprint
)
  external
  hasAbilities(ABILITY_TO_EXECUTE)
{
  Xcert(_xcert).create(_to, _id, _imprint);
}

/**
 * @dev Creates a new NFT.
 * @param _xcert Address of the Xcert contract on which the creation will be perfomed.
 * @param _to The address that will own the created NFT.
 * @param _id The NFT to be created by the msg.sender.
 * @param _imprint Cryptographic asset imprint.
 */