     function joinChannel(bytes32 _lcID, uint256[2] _balances) public payable {
         require(Channels[_lcID].isOpen == false);
         require(msg.sender == Channels[_lcID].partyAddresses[1]);
         if(_balances[0] != 0) {
             require(msg.value == _balances[0], "state balance does not match sent value");
             Channels[_lcID].ethBalances[1] = msg.value;
         }
         if(_balances[1] != 0) {
             require(Channels[_lcID].token.transferFrom(msg.sender, this, _balances[1]),"joinChannel: token transfer failure");
             Channels[_lcID].erc20Balances[1] = _balances[1];
         }
         Channels[_lcID].initialDeposit[0]+=_balances[0];
         Channels[_lcID].initialDeposit[1]+=_balances[1];
         Channels[_lcID].isOpen = true;
         numChannels++;
         emit DidLCJoin(_lcID, _balances[0], _balances[1]);
     }