function upgradeOnePointZeroBalances() internal {
    
        if (upgraded[msg.sender]) {
            log0("account already upgraded");
            return;
        }
    
        uint256 deposited = hgs.deposits(msg.sender);
        if (deposited == 0)
            return;
    
        deposited = deposited.add(deposits[msg.sender]);
        if (deposited.add(msg.value) < 10 ether)
            return;
    
        uint256 hgtBalance = hgt.balanceOf(msg.sender);
        uint256 upgradedAmount = deposited.mul(rate).div(1 ether);
        if (hgtBalance < upgradedAmount) {
            uint256 diff = upgradedAmount.sub(hgtBalance);
            hgt.transferFrom(reserves,msg.sender,diff);
            hgtSold = hgtSold.add(diff);
            upgradeHGT[msg.sender] = upgradeHGT[msg.sender].add(diff);
            log0("upgraded R1 to 20%");
        }
        upgraded[msg.sender] = true;
    }