modifier onlyOwnerOf(uint256 _tokenId) {
    require(ownerOf(_tokenId) == msg.sender ||
            (ownerOf(_tokenId) == tx.origin && isAgent(msg.sender)) ||
            msg.sender == admin);
    _;
  }