func: function startNewRound() public payable {
          require(!upgraded, "This contract has been upgraded!");
          if(rounds.length > 0) {
              require(rounds[latestRoundID].finalized, "Previous round not finalized");
              require(rounds[latestRoundID].softDeadline < now, "Previous round still running");
          }
          uint _rID = rounds.length++;
          MobiusRound storage rnd = rounds[_rID];
          latestRoundID = _rID;
  
          rnd.lastInvestor = msg.sender;
          rnd.price = STARTING_SHARE_PRICE;
          rnd.hardDeadline = now + HARD_DEADLINE_DURATION;
          rnd.softDeadline = now + SOFT_DEADLINE_DURATION;
          rnd.jackpot = jackpotSeed;
          jackpotSeed = 0; 
  
          _purchase(rnd, msg.value, address(0x0));
          emit RoundStarted(_rID, rnd.hardDeadline);
      }