function getState() 
    public 
    view 
    returns (
      uint256,
      uint256,
      uint256,
      uint256,
      uint256,
      uint256,
      uint256,
      uint256,
      uint256,
      uint256
    )
  {
    uint256 phase=gameState.phase;
    uint256 end;
    uint256 ethGoal;
    uint256 eth;  
    uint256 stage=gameState.stage;
    if(phases[phase].end!=0 && now > phases[phase].end && phases[phase].shares>=phases[phase].shareGoal && gameState.ended==0){
      end=phases[phase].end.add(phaseLen);      
      ethGoal=phases[phase].eth.mul(growthTarget)/100;
      phase++;
      stage=(phase-1)/phasePerStage+1;                  
    }else{
      end=phases[phase].end;
      ethGoal=phases[phase].ethGoal;
      eth=phases[phase].eth;
    }
    return (
      gameState.pot, 
      gameState.origShares,
      gameState.plyrCount,
      phase,
      end,
      ethGoal,
      eth,
      stage,
      gameState.eth,
      gameState.currShares
      );    
  }