function claim() public payable isStarted {
    require(now > lastAction + timeBeforeJackpot);
    require(jackpotLastQualified != 0x0); 

    
    
    uint256 reseed = SafeMath.div(SafeMath.mul(jackpotBalance, gameReseeds[jackpotCount]), 100);
    uint256 payout = jackpotBalance - reseed;


    jackpotLastQualified.transfer(payout); 
    jackpotBalance = reseed;
    jackpotLastWinner = jackpotLastQualified;
    jackpotLastPayout = payout;

    
    games[gameIndex].winners.push(jackpotLastQualified);
    games[gameIndex].winnerPayouts.push(payout);

    
    timeBeforeJackpot = timeBeforeJackpotReset; 
    jackpotLastQualified = 0x0; 

    if(jackpotCount == gameReseeds.length - 1){
      
      gameStartTime = now + timeBetweenGames;    
      lastAction = gameStartTime; 
      gameIndex += 1; 
      jackpotCount = 0;  

    } else {
      lastAction = now + timeBetweenRounds;
      roundStartTime = lastAction;
      jackpotCount += 1;
    }
  }