public void cellSelected(int column, int row) {
        if(column >= gameArea.getColumns() || column < 0 || row >= gameArea.getRows() || row < 0) {
            return;
        }
        if(gameArea.getCellAt(column, row).getType() != Cell.EMPTY) {
            return;
        }
        
        switch(currentPlayer) {
            case 0:
                gameArea.setCellAt(column, row, Cell.CIRCLE);
                break;
            case 1:
                gameArea.setCellAt(column, row, Cell.CROSS);
                break;
            default:
                //Uh oh.
                break;
        }
        
        if(!checkForLines(column, row) && gameArea.getFreeCells() == 0) {
            callback.gameOver(-1);
        }
        advanceTurn();
    }