function () payable public {
        require (available > 0,"not available");
        require (msg.value >= 0.01 ether,"lowest ether");
        require (msg.sender == contractOwner || balanceOf(msg.sender) == 0,"had one");
        
        uint tokenId = _getRandom(orders.length);
        uint reset = 0;
        for (uint i = tokenId;i < orders.length;i++) {
            if (reset == 1) {
                i = 0;
                reset = 0;
            }
            if (! unavailableOrders[i]) {
                emit GetAvailable(tokenId,i);
                tokenId = i;
                break;
            } else if (i == orders.length - 1) {
                reset = 1;
                i = 0;
            }
        }
        _mint(msg.sender, tokenId);
        unavailableOrders[tokenId] = true;
        available--;
    }