function _bid(address _sender, uint256 _platVal, uint256 _tokenId) internal {
        uint256 lastIndex = latestAction[_tokenId];
        require(lastIndex > 0);
        Auction storage order = auctionArray[lastIndex];

        uint64 tmNow = uint64(block.timestamp);
        require(order.tmStart + auctionDuration > tmNow);
        require(order.tmSell == 0);

        address realOwner = tokenContract.ownerOf(_tokenId);
        require(realOwner == order.seller);
        require(realOwner != _sender);

        uint256 price = (uint256(order.price)).mul(1000000000000000000);
        require(price == _platVal);

        require(bitGuildContract.transferFrom(_sender, address(this), _platVal));
        order.tmSell = tmNow;
        auctionSumPlat += order.price;
        uint256 sellerProceeds = price.mul(9).div(10);
        tokenContract.safeTransferByContract(_tokenId, _sender);
        bitGuildContract.transfer(realOwner, sellerProceeds);

        AuctionPlatSold(lastIndex, realOwner, _sender, _tokenId, price);
    }