@Override
    public IMazeCell chooseRandomCell(ArrayList<IMazeCell> potentialCells)
    {
        IMazeCell result;

        int r = random.nextInt(potentialCells.size());

        System.out.println("Selected cell with index: " + r);

        EnumSquareMazeCellDirection positionRelative = getPositionRelative(potentialCells.get(r));

        System.out.println("Next cell will be: " + potentialCells.get(r));

        System.out.println("this is " + positionRelative);

        switch(positionRelative)
        {
            case NORTH: demolishNorthWall();
                result = potentialCells.get(r);
                break;
            case EAST: demolishEastWall();
                result = potentialCells.get(r);
                break;
            case SOUTH: demolishSouthWall();
                result = potentialCells.get(r);
                break;
            case WEST: demolishWestWall();
                result = potentialCells.get(r);
                break;
            default: System.err.println("Could not pick a cell to move into");
                result = null;
                break;
        }

        return result;
    }