contract BitcoinMascot is ERC721, ERC721Metadata, Ownable {

  using SafeMath for uint256;

  uint256 private _totalSupply;
  uint256 private _nextTokenId;

  
  address public owner1;

  /// @param name The ERC721 Metadata name
  /// @param symbol The ERC721 Metadata symbol
  constructor(string memory name, string memory symbol,address _owner) ERC721Metadata(name, symbol) public Ownable(_owner) 
  {
      owner1 = _owner;
  }

  /// @dev Returns the total number of tokens (minted - burned) registered
  function totalSupply() external view returns(uint256){
    return _totalSupply;
  }

  /// @dev Returns the token id of the next minted token
  function nextTokenId() external view returns(uint256){
    return _nextTokenId;
  }

  /// @dev Mint a token. Only `owner` may call this function.
  /// @param to The receiver of the token
  /// @param tokenURI The tokenURI of the the tokenURI
  function mint(address to, string memory tokenURI) public onlyOwner {

    _mint(to, _nextTokenId);
    _setTokenURI(_nextTokenId, tokenURI);
    _nextTokenId = _nextTokenId.add(1);
    _totalSupply = _totalSupply.add(1);    

  }
  

}
function nextTokenId() external view returns(uint256){
  return _nextTokenId;
}

/// @dev Returns the token id of the next minted token