public void update() 
    {   
        Window window = Window.getInstance();
        
        JPanel panel = window.getPanel();
        
        if (pauseDelay > 0)
            pauseDelay--;
        
        if (keyboard.isDown(KeyEvent.VK_P) && pauseDelay <= 0)
        {   
            if (!paused)
            {
                window.setPanel(new PausePanel());
            }
            else
            {
                window.setPanel(new GamePanel());
            }
            
            pauseDelay = 20;
        }
        
        paused = panel.getClass() != GamePanel.class;
        
        if (paused)
            return;
        
        if (currentRound.isDone())
        {
            Round previousRound = rounds.remove(0);
            session.incrementRound();
            currentRound = null;
                    
            if (rounds.size() > 0)
            {
                currentRound = rounds.get(0);
                currentRound.setSession(previousRound.getSession());
                currentRound.init();
            }
        }
        
        if (rounds.size() > 0) {
            currentRound.update();
            
            if (panel instanceof GamePanel)
            {
                GamePanel gamePanel = (GamePanel)panel;
                gamePanel.draw(currentRound.getRenders());
                gamePanel.drawStrings(currentRound.getStringRenders());
                gamePanel.repaint();
            }
        } else {
            window.setPanel(new GameFinishPanel(session));
        }
    }